2017-04-10 63 views
1

我已經與多個條件試圖在我的所有https的頁面重定向http我的SSL證書已過期。由於需要時間來反映這些更改,我想重定向https提供的所有請求,以便通過http調用。重定向到http不工作

試圖與這些規則:

RewriteCond %{HTTPS} on 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 


RewriteCond %{HTTPS} ^on$ 
RewriteRule ^(.*)$ http://my_site.com/$1 [NC,L,R] 


RewriteCond %{HTTP:X-Forwarded-Proto} =https 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

一切似乎是工作。有沒有更好的方法來處理這個問題?幾乎一無所有 -

+0

的起點實際上會發生什麼解決?或者錯誤?如果您直接輸入HTTP網址,您的網站是否可以使用?你清除了瀏覽器緩存嗎? (你可能有一個HTTP以前實施的HTTPS 301 - 這已經被瀏覽器緩存的硬盤。)您已經實現HSTS?你在使用CDN嗎?你有其他指令嗎?其他'.htaccess'文件? mod_rewrite啓用?啓用「.htaccess」? – MrWhite

+0

@ w3dk一切正常,謝謝!發生這種情況是因爲規則是在文件開始時應用的。我試圖將它們放在文件的末尾,它現在正在工作。 –

回答

0

它通過將規則在文件的結尾,而不是將它們放置在文件

+0

很高興你解決了。但是,將這些指令在文件的結尾並沒有真正意義 - 這些指令應(事實上,我會說「必須」)走在文件的開始。如果相同的指令工作,有它移動到文件的末尾,那麼我認爲這個問題是「別的東西」(如高速緩存或東西)?如果保留指令在文件的末尾,則極有可能稍後添加任何額外的指令將阻止這種重定向的發生。 – MrWhite

+0

@ w3dk呀,重定向規則後,一些規則必須寫上這條規則,並再次重定向URL爲https。然而,它在最後時刻幫助我。現在,SSL證書已註冊並更新。我現在通過https再次運行該網站:) –