任何人都可以幫助我編寫重寫代碼,重定向http < - > https(返回並強制取決於URL類型)與這些條件:htaccess rewriterule:根據URL類型將http重定向到https或https到http(兩種方式)
1)http://www.mydomain.com , http://www.mydomain.com/?p=home , http://www.mydomain.com/?p=home1 , http://www.mydomain.com/?qqq=home
始終是http,即使https是鍵入而不是http。
2)即使輸入的是http而不是https,其餘所有頁面始終爲https。
以下代碼將除http://www.mydomain.com之外的所有網址(並保留參數)重定向到https。
#redirects http to https if there are parameters
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} !^$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
我試過的代碼之後添加下面的代碼正上方重定向HTTPS訪問http以及(如果沒有參數應用),這樣所有的頁面總是HTTPS,除了www.mydomain.com ,但我沒有運氣。我也錯過了?p = home,?p = home1,?qqq = home - 我不知道如何添加它們。
RewriteCond %{HTTP} off
RewriteCond %{QUERY_STRING} ^$
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
哇......看起來像我理解原理,但我永遠不會從頭開始寫我自己的。人們怎麼能在一年內少回答我的問題?.. :)另一個問題是:你能解釋一下「家1?」。是否意味着最後一個符號(「1」)無效的「home1」或「home1」?謝謝。第二個問題:[E = IS_HTTP:1]或[ENV = IS_HTTP:1]?謝謝。 – Haradzieniec
@Haradzieniec'home1?'與'home'或'home1'匹配,即'?'使'1'可選。 'E'或'env'將起作用。 –
非常感謝。它的工作原理,但....我不知道這是一個問題,而不是另一個...使用你的代碼,HTTPS是紅色的,在Chrome中劃掉,類似的錯誤發生在FF。一旦我刪除了你的代碼,一切正常,SSL證書顯示正常 - 它是綠色的。它甚至可以在代碼的第一個和第三個塊(但沒有第二個塊,以「RewriteCond%{HTTPS} on」開頭)上正常工作。可能是什麼原因?非常感謝你。 – Haradzieniec