[英]htaccess url rewrite http www and non-www to https www + https non-www to https www
[英]htaccess, redirect to https for a specific file and to non-www https
我有一個網站可以工作,並嘗試通過htaccess進行幾天的重定向。 我已經在網上搜索並找到了不錯的作品,尤其是在該網站上,但是盡管我嘗試了幾乎所有的可能性,但我仍未實現我想做的事情。
我需要將所有站點重定向到非www http,包括https,僅一個文件除外。 假設重定向http://://www.example.com/.../....php?a = ...
https://www.example.com/.../....php?a = ...
https://example.com/.../....php?a = ...
至
http://example.com/.../....php?a = ...
但是,只有一個特定文件
http://www.example.com/.../theSpecificFile.php?a = ...
https://www.example.com/.../theSpecificFile.php?a = ...
http://example.com/.../theSpecificFile.php?a = ...
應該重定向到
https://example.com/.../theSpecificFile.php?a = ...
為此,我編寫了許多htaccess文件,但在每種情況下,我都無法滿足我的需求。 例如在最后的htaccess:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
ErrorDocument 404 http://example.com/404.php
#force https for certain pages
RewriteCond %{HTTPS} !=on
RewriteRule ^(theSpecificFile\.php)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
#redirect www.example.com to example.com (or any other subdomain)
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
通過此htaccess文件,
當我嘗試通過ssl_error_bad_cert_domain獲得https://:// www的 不安全或不可信連接 (我正在從另一種語言翻譯,希望它可能是真正的翻譯)時
當我嘗試訪問theSpecificFile.php時,出現定義“ infine loop ”的錯誤(再次希望這可能是真正的翻譯)。
這真的讓我感到沮喪,因此,任何幫助將不勝感激。
提前致謝
看,在這里您將theSpecificFile.php
重定向到其https版本,但是第二條重定向規則觸發並將瀏覽器重定向到http,然后從那里將第一條規則重定向回到https ...這就是為什么會出現無限循環的原因。
ssl_error_bad_cert_domain表示該證書不適用於該域,因此您可能需要檢查是否使用了正確的證書。
請試試:
RewriteCond %{HTTPS} on
RewriteConf %{REQUEST_URI} !=/theSpecificFile.php
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
您可以使用:
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{REQUEST_URI} !/theSpecificFile\.php [NC]
RewriteRule ^ http://example.com/%{REQUEST_URI} [L,R=302]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /theSpecificFile\.php [NC]
RewriteRule ^ https://example.com/%{REQUEST_URI} [L,R=302]
一切正常時,將[R = 302,L]更改為[R = 301,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.