我發現了很多像這樣的問題,並嘗試幾乎所有,但失敗。我最最新的代碼是:重定向只有一些網頁從http到https
RewriteCond %{HTTPS} !^on$
RewriteCond %{REQUEST_URI} (/page_1|/page_2|/page_3|/page_3)$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
我想重定向HTTP到HTTPS只對那些網頁(PAGE_1 - page_4)
最初,它似乎是工作,但我到了一起PAGE_1 HTTPS和點擊任何其他(比如說page_my_http_1)鏈接,該鏈接不應該是https它也會重定向到該頁面的https(page_my_http_1)。
我也試過:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (auth|register|secure)
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(auth|register|secure)
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301]
或有任何的方式來顯示自定義消息,如果用戶在他們的瀏覽器沒有被激活SSL證書?
實際上,很多非技術用戶在瀏覽器顯示默認警告消息時會感到震驚。
這不是沒有激活SSL的用戶,它是你的服務器必須保存有效的證書。我猜你在HTTPS頁面上混合了HTTPS和HTTP請求;這會向用戶顯示警告消息,因爲HTTP請求未加密。我認爲您可以使用* HTTP \ _REFERER *字段將HTTP請求重定向到HTTPS。理想情況下,如果您的應用程序中的路徑更適合使用哪種協議 – kjetilh 2013-03-08 11:43:52