2015-07-21 3 views
2

Я пытаюсь настроить блог WordPress в подпапку домена, используя SSL без успеха. Если в блоге .htaccess установлено перенаправление всего HTTP на HTTPS, тогда он вызывает цикл перенаправления. Если .htaccess не настроен на перенаправление всего HTTP на HTTPS, то блог не отображается должным образом, поскольку браузер блокирует все HTTP-запросы, поскольку SSL используется, также в этом случае не происходит вход в wp.WordPress https redirect loop

Details: 
- Fresh WordPress installation 
- Domain is using SSL 
- WP installed on subfolder example.com/blog/ 
- HTTPS set to WP's home and site URL in database 

Вот папка блога .htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteBase /blog/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 
</IfModule> 

Вот главный домен .htaccess:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !\..+$ 
RewriteRule ^(.*)$ http://foobar.example.com/$1 [L,R=301] 

Вот апач конфигурации для запросов HTTP: /и т.д./apache2/сайты-имеются/000-default.conf

<VirtualHost *:80> 
    ServerName example.com 
    ServerAlias *.example.com 
    ServerSignature Off 
    RewriteEngine on 
    RewriteCond %{HTTPS} !=on 
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [NE,R,L] 
</VirtualHost> 

Любая помощь и идеи, что нужно проверить, будут высоко оценены.

ОБНОВЛЕНИЕ: Я вручную заменил все HTTP-ссылки на HTTPS в базе данных WP, единственными вхождениями были примерная страница и почтовые URL-адреса, но это не помогло решить проблему.

ответ

2

Я смог решить проблему, добавив $ _SERVER ['HTTPS'] = 'on'; в wp-config.php. Я не знаю, почему система $ _SERVER ['HTTPS'] не установлена ​​должным образом системой, но я думаю, что она каким-то образом связана с конфигурациями Apache/SSL.

Без установки $ _SERVER ['HTTPS'] = 'on' WP не смог обнаружить HTTPS и загружал контент по HTTP, который с перенаправлением .htaccess вызывал цикл перенаправления.