![](/img/trans.png)
[英]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.