[英]Redirect loop with CloudFlare and OpenShift and a WordPress application
我在OpenShift上創建了我的WordPress應用程序,它響應了URL blog-porta8080.rhcloud.com。
我在OpenShift上創建了2個別名
我從巴西注冊商處購買了我的域名(porta8080.com.br),不允許我添加沒有像www這樣的子域名的CNAME記錄。
因此,我在CloudFlare上創建了一個帳戶,注冊了我的域名並將我的域名移至了CloudFlare DNS服務器。
然后我向CloudFlare添加了2個CNAME記錄
我甚至安裝了他們認為可以幫助我的CloudFlare插件
https://wordpress.org/plugins/cloudflare/
但是當我去http://porta8080.com.br時 ,由於重定向循環錯誤,它無法加載頁面。 我在chrome和Firefox上測試過,兩者都拋出相同的錯誤。 Chrome說“ERR_TOO_MANY_REDIRECTS”並檢查請求,它給了我幾個“301錯誤:永久移動”
wp-admin頁面沒有給我一個錯誤。 我唯一能想到的就是它自己的.htaccess文件。
這是我的.htaccess(Openshift中的那個可能沒有blog/
部分,我只是更改了兩者中的永久鏈接,這就是我機器上的結果.htaccess)
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
有什么想法嗎?
@編輯
我的.htaccess確實存在問題。 我對它進行了評論並在索引文件上添加了一條消息,它通過www和沒有它來到達那里。
你猜到為什么?
當您使用CloudFlare的靈活SSL選項和WordPress時,這是一個有趣的問題。 WordPress,它的核心,有一個is_ssl
函數,不考慮反向代理。 因此,當您重定向到SSL時, 如果使用靈活SSL,則可以獲得重定向循環 。
解決這個問題的最簡單方法是在Apache上安裝Mod_cloudflare 。
相反,您可以將if語句添加到wp-config.php文件以解決此問題:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$_SERVER['HTTPS'] = 'on';
}
如果您使用此方法而不是安裝Mod_cloudflare,請確保對任何重定向使用“X-Forwarded-Proto”標頭而不是SSL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.