2017-04-04 50 views
0

我們有一個HTTP> HTTPS重定向我們的「頂」級:保留請求的協議中的子目錄.htaccess的

example.com/top/ 

現在爲/頂子目錄/:

example.com/top/sub/ 

我想保留那裏要求的協議。

所以,如果它是http://example.com/top/sub/this.php我希望它留下來作爲「HTTP」

而如果它的https://example.com/top/sub/this.php我希望它留下來作爲「HTTPS」

目前我在/頂.htaccess文件/子/目錄中:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,END] 

這是做什麼我需要它是幹什麼的,所以在所有的請求的條件被髮送到子目錄它是完美的。

的問題是我收到的報告的error_log此錯誤消息:

[REWRITE] detected external loop redirection with target URL: http://example.com/top/sub/this.php, skip. 

我明白爲什麼我得到這個消息,因爲每一個HTTP請求發出一次它匹配這個條件,我只是不知道如何阻止它。我嘗試使用'END'參數強制只有一個重定向 - 但這似乎並沒有工作,或至少不按照我預期的方式工作。

我只想讓協議與請求的/ top/sub /保持一致 - 問題在於/ top/redirect將所有內容發送到HTTPS。

這可能嗎?

回答

0

我很想知道是否實際上有一種方法來保存協議而不創建一個循環,但是我能夠通過調整/ top /中的重定向來僅實現重定向頁面't match/top/sub/- 我真的應該早就想到這個解決方案。

希望可以幫助別人。