溶液下方覆蓋所需的規則:htaccess的:重定向HTTP到HTTPS或https爲http取決於URL
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,
但在實踐中不涵蓋
3)//www.mydomain.com/administration/any_file_in_admin_folder.php
應該總是HTTPS以及(即使有參數P =家庭等)。
RewriteEngine on
RewriteBase/
#determine if page is supposed to be http
#if it has p=home or p=home1 or qqq=home in querystring
RewriteCond %{QUERY_STRING} (^|&)(p=home1?|qqq=home)(&|$) [NC,OR]
#or if query string is empty
RewriteCond %{QUERY_STRING} ^$
#set env var to 1
RewriteRule^- [E=IS_HTTP:1]
#all pages that are supposed to be http redirected if https
RewriteCond %{HTTPS} on
RewriteCond %{ENV:IS_HTTP} 1
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#all other pages are sent to https if not already so
RewriteCond %{HTTPS} off
RewriteCond %{ENV:IS_HTTP} !1
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
如何實現3)這個代碼,所以它的工作原理? (我還沒有運氣,需要幫助)。 謝謝。
謝謝。它的作品(你的答案是我試過的第一個)。任何人都可以猜測,爲什麼它有效,但是一旦我創建了一個密碼(我已經嘗試了兩種方式 - 使用主機面板設置 - >通過密碼保護文件夾,還創建.htaccess和.htpasswd文件)頁面管理/索引。 PHP重定向到404錯誤頁面。 IE說(如果我輸入了錯誤的密碼):另外,嘗試使用ErrorDocument來處理請求時遇到404 Not Found錯誤。如果我輸入正確,404錯誤頁面顯示沒有錯誤。這是怎麼回事?沒有密碼--everythigsOK。 – Haradzieniec 2012-02-07 20:05:53
@Haradzieniec是否爲'401錯誤'定義了單獨的文檔? – ThinkingMonkey 2012-02-07 20:18:46
@Haradzieniec它的工作原理是在第二和第三塊(指向'http'協議)中添加'RewriteCond%{REQUEST_URI}!/ administration/[NC]'來檢查URI中沒有'administration'。 – ThinkingMonkey 2012-02-07 20:20:30