我試圖捕捉任何HTTPS流量到我的網站,這樣的面前:的.htaccess重定向到HTTPS HTTP不工作
https://www.domain.com
被重定向到:
http://www.domain.com
然而,其他子域需要被重新引導到其他地方。除了https - > http重定向之外,大多數情況下這都是可行的。下面是目前我的.htaccess文件:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond "%{HTTP_HOST}" !^www.* [NC]
RewriteCond "%{HTTP_HOST}" ^([^\.]+).*$
RewriteRule ^(.*)$ https://secure.domain.com/a/login/%1 [L,R=301]
這似乎是這個位:
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
不工作,我會想象。事實上,它似乎根本沒有重定向。
在另一個子目錄我有效果相反的正常工作:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
所以我的想法是相反的應該做的工作,但貌似沒有。
任何想法的人?
編輯
我想,這可能有一些做的事實,在服務器上有哪個ISP用於提供一個通用的解決HTTPS到您的網站的SSL證書。例如,如果你有一個網站:
您可以通過訪問相同的內容/託管帳戶通過https:
https://server100.securedomain.com/yourdomain.com
難道是因爲當我輸入HTTPS到瀏覽器我被服務的通用證書,因爲它不匹配我輸入的域名我收到一個安全警告關於一個不可信的證書,這是停止重定向?
EDIT 2
望着服務器頭,我認爲我與我上面的假設是正確的。服務器正在返回:
The host name in the certificate is invalid or does not match
這會停止重定向嗎?
true ...對於那些沒有SSL證書的服務器,需要接受網頁上的警告。然後下面的代碼將重定向從https到http:
'的RewriteCond%{HTTP_HOST} XYZ \ .co.uk $ [NC]'
\t'的RewriteCond%{HTTPS} on'
\t'重寫規則^([^/] +)?$ http://%{HTTP_HOST}/$ 1 [R = 301,L]'
– Invincible 2015-05-01 11:21:53
那麼有沒有辦法避免警告屏幕?它不可能強制HTTP始終爲所有頁面,並避免警告頁面? – Robbiegod 2015-11-18 18:24:13