我需要強制將Apache中的所有頁面重定向到HTTPS,除了幾頁之外。如何在這種情況下在Apache中編寫重寫規則?如何強制重寫HTTPS除了Apache中的幾個頁面?
6
A
回答
18
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^\/page1\/
RewriteCond %{REQUEST_URI} !^\/page2\/
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301]
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} \/page1\/ [OR]
RewriteCond %{REQUEST_URI} \/page2\/
RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301]
的第一條規則集將重定向通過HTTPS訪問不是所有頁面,而不是/page1/
或/page2/
相同的URL,但https://
。第二個規則集將確保/page1/
和/page2/
重定向回http://
,如果通過https://
訪問它們。
5
相關問題
- 1. Mod_Rewrite:強制https除了特定頁面
- 2. 強制所有頁面HTTPS
- 3. Apache重寫:強制https和服務器名稱,而不是IP
- 4. Apache HTTPS URL重寫
- 5. 多個htaccess的http重定向到https但除了頁面
- 6. Apache VirtualHost設置強制https
- 7. htaccess重定向除了三頁以外的所有頁面https:
- 8. htaccess文件:強制去https而不是http,除了特定的頁面
- 9. Laravel強制HTTPS與現代重寫
- 10. 使用IIS和ISAPI重寫強制HTTPS
- 11. Apache .htaccess將所有網址重寫爲https主頁,但重寫爲https當前頁面的例外
- 12. .htaccess強制刪除重寫
- 13. 在頁面上強制SSL(https)
- 14. 強制https轉到http重定向,除了Wordpress/wp-admin目錄
- 15. 5.htaccess重寫:強制HTTPS,刪除index.php,刪除.php,強制www,強制執行尾部斜槓
- 16. apache的虛擬主機重定向到https,除了一個子
- 17. Apache重寫規則強制下載
- 18. 如何強制重寫url?
- 19. apache htaccess重寫https request_filename
- 20. 如何強制網頁使用HTTPs?
- 21. .htaccess重寫強制HTTPS,如何避免一些域名?
- 22. 強制頁面重新加載,如果它已經改變了
- 23. 強制使用HTTPS,除了一個目錄
- 24. Htaccess強制https除了在一個網址上不起作用
- 25. Facebook頁面:強制HTTP頁面在HTTPS連接上顯示
- 26. 如何重定向除了少數幾個請求,使用IIS重寫模塊
- 27. 將https重定向到http,除了登錄頁面
- 28. .htaccess:除了在某些頁面上,從http重定向到https?
- 29. 重定向所有從http到https,除了聯繫頁面
- 30. 如何重寫URLS以刪除index.php並用codeigniter強制小寫?
東西丟失。如果您希望匹配是準確的,請不要忘記添加美元符號'$',否則只要在URL中的任何位置找到/ page1 /',規則就會匹配。這可能不是你想要的。我試圖在http中使用的頁面是'/'。沒有'$'就沒有效果。 'RewriteCond%{REQUEST_URI}^\/$' – lano1106 2017-01-19 21:43:57
似乎應該更改爲'RewriteRule(。*)https://%{HTTP_HOST} $ 1 [L,R = 301]',否則它將被重定向到https:// example.org//(雙斜線) – Sutra 2017-09-05 10:30:20