Проблемы с SSL на EC2 позади ELB с вложенным блогом WordPress - PullRequest
0 голосов
/ 20 декабря 2018

Я перевожу свой веб-сайт на 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.

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

1 Ответ

0 голосов
/ 20 декабря 2018

Хорошо.Вот что сработало для меня.

Используйте рекомендованный 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';
...