2014-03-03 119 views
1

我有一個WordPress後面的nginx代理的Apache網站。 我已經配置了SSL,現在我無法預覽草稿,他們最終在無限重定向循環中訪問相同的URL。無限重定向循環與SSL

在我們的WP-配置有:

define('FORCE_SSL_LOGIN', true); 
define('FORCE_SSL_ADMIN', true); 
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') 
    $_SERVER['HTTPS'] = 'on'; 

我們的.htaccess爲Apache根:

RewriteEngine on 

RewriteCond %{REQUEST_URI} !^/Site/ 
RewriteCond %{REQUEST_URI} !^/phpMyAdmin/ 
RewriteRule ^(.*)$ /Site/$1 

RewriteCond %{REQUEST_URI} !^/phpMyAdmin/ 
RewriteRule ^(/)?$ /Site/index.php [L] 

我們對站點文件夾的.htaccess:

RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

如果我訪問http中的帖子預覽,它的工作原理如下: http://my.domain/?post_type=portfolio&p=3405&preview=true

但以https它被重定向(301)相同的URL一遍又一遍: https://my.domain/?post_type=portfolio&p=3405&preview=true

我在WordPress的index.php添加了一個輸出緩衝器,這樣我就可以在日誌中看到,當訪問安全鏈接時,它會生成後期預覽html,所以在php引擎生成後期預覽後,重定向必定發生在返回的路上。

對於安全鏈路,在Apache的訪問日誌我看到的,所以我不認爲nginx的原因造成的問題:?

「GET/post_type =投資組合& P = 3405 &預覽=真HTTP /1.0「301

我們使用永久鏈接,因此預覽發佈的帖子在http和https中都沒有任何問題。 任何想法?

謝謝, 利奧爾

+0

我想我有一個方向 - 通過禁用更好的WP安全插件,我成功了預覽使用SSL草案(儘管它有一些混內容)。所以我會看看類似問題的插件論壇。 –

回答

0

提供的代碼被檢查的X前向的Proto首部設置爲HTTPS。您需要確保nginx的在向前添加此 - 類似如下:

location/{ 
      proxy_set_header X-Forwarded-Proto https; 
      proxy_pass http://127.0.0.1:10554; 
}