.htaccess htaccess在考虑http或https的情况下将www强制为非www

.htaccess htaccess在考虑http或https的情况下将www强制为非www,.htaccess,redirect,.htaccess,Redirect,我真的被这个漂亮的htaccess脚本(规则)的转换卡住了,它强制非www到www url,考虑到http或https的完美工作,但我不能让它从www反向工作到非www,你能帮我吗 RewriteCond %{HTTP_HOST} !^www\. RewriteCond %{HTTPS}s ^on(s)| RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 谢谢你,我真的被那些htaccess符号迷住了 将www转换为

我真的被这个漂亮的htaccess脚本(规则)的转换卡住了,它强制非www到www url,考虑到http或https的完美工作,但我不能让它从www反向工作到非www,你能帮我吗

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

谢谢你,我真的被那些htaccess符号迷住了

www转换为非www
由于变量捕获在RewriteCond中的工作方式,上述代码将不起作用。您需要将它们分成如下两条规则:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

为了使
www变为非www
,由于变量捕获在重写状态下的工作方式,上述代码将不起作用。您需要将它们分成如下两条规则:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
可能的重复可能的重复