2015-07-21 193 views
2

我試圖將WordPress博客設置爲使用SSL的域上的子文件夾而沒有成功。如果博客.htaccess設置爲將所有HTTP重定向到HTTPS,則會導致重定向循環。如果.htaccess未設置爲將所有HTTP重定向到HTTPS,則由於SSL正在使用中,因爲瀏覽器正在阻止所有HTTP請求,所以博客無法正常顯示,在這種情況下,wp登錄失敗。WordPress https重定向循環

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請求Apache的配置: 的/ etc/apache2的/ sites-available/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> 

任何幫助和想法什麼檢查將不勝感激。

更新:我已經在WP數據庫中用HTTPS手動替換了所有HTTP URL,唯一發生的事情是示例頁面和發佈URL,但這無助於解決問題。

回答

2

我能夠通過添加$ _SERVER ['HTTPS'] ='on'來解決問題;到wp-config.php中。我不知道爲什麼$ _SERVER ['HTTPS']沒有被系統正確設置,但我猜它與Apache/SSL配置有關。

沒有設置$ _SERVER ['HTTPS'] ='on'WP無法檢測HTTPS並且正在通過HTTP加載內容,而使用.htaccess重定向導致重定向循環。