Проблемы с SSL на EC2 за ELB с вложенным блогом WordPress

Я переношу свой веб-сайт на AWS и все настроено и работает на экземпляре Linux EC2 с использованием ELB для включения SSL / TLS. Все работает нормально (codeigniter, phpbb3, osticket), ЗА ИСКЛЮЧЕНИЕМ проблем с частью сайта WordPress, которая находится в подкаталоге (например, www.mysite.com/blog). Доступ к частям блога осуществляется через http, поэтому я получаю сообщение «смешанное содержание». Я также бесконечно перенаправляюсь при попытке войти в административную часть блога.

Чтобы https работал, я последовал инструкциям Amazon и добавил рекомендуемый код в свой файл httpd.conf.

Однако, согласно этому блогу (https://blog.lawrencemcdaniel.com/wordpress-aws-elb-ssl), WordPress с этим не работает.

AMAZON RECOMMENDED CODE
    <VirtualHost *:80>
        RewriteEngine On
        RewriteCond %{HTTP:X-Forwarded-Proto} =http
        RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
    </VirtualHost>

Я подумал, что должен быть способ применить правило перезаписи ко всем каталогам, кроме одного, чтобы я мог следовать конкретным инструкциям WordPress, но я не могу найти никакой информации по этому поводу. (Я мог бы просто быть плохим поисковиком!). Я открыт для любой помощи в решении этого вопроса.

----РЕДАКТИРОВАТЬ----

С тех пор я пробовал следующее (ни один из них не работал):

  1. изменено правило перезаписи в httpd.conf на

    RewriteRule! ^ Blog https://% {HTTP_HOST}% {REQUEST_URI} [L, R = постоянный]

и добавил

define('WP_HOME','https://www.example.com/blog');
define('WP_SITEURL','https://www.example.com/blog');

в файле конфигурации wp.

  1. полностью удалил код VirtualHost из файла httpd.conf и оставил WP_HOME и WP_SITEURL в файле конфигурации wp

person Jreif    schedule 19.12.2018    source источник


Ответы (1)


Ok. Вот что в итоге сработало для меня.

Используйте рекомендованный Amazon код в файле httpd.conf

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} =http
    RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>

Добавьте следующее в свой файл wp-config.php

define('WP_HOME','https://www.yoursitename.com/yourdirectory');
define('WP_SITEURL','https://www.yoursitename.com/yourdirectory');
define('FORCE_SSL_ADMIN', true);

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS'] = 'on';
person Jreif    schedule 20.12.2018