簡體   English   中英

使用CloudFlare和OpenShift以及WordPress應用程序重定向循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM