Apache htaccess不理解^www\。规则,如果参数附加到url
.htaccess不理解Apache htaccess不理解^www\。规则,如果参数附加到url,apache,.htaccess,Apache,.htaccess,.htaccess不理解^www.规则 #do not use this, because i want to redirect from https://www.somedomain.com #RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR] RewriteCond %{HTTP_HOST} ^somedomain\.com$ [OR] RewriteCond %{HTTP_HOST} ^w
^www.
规则
#do not use this, because i want to redirect from https://www.somedomain.com
#RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} ^somedomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.somedomain\.com$
RewriteRule ^/?$ "https\:\/\/somedomain\.com" [L,R=301]
#[NE,L,R=301] - NE|noescape
这将提供以下重定向,尽管速度非常慢:
somedomain.com-->
www.somedomain.com-->
somedomain.com/folder/file-->
www.somedomain.com/folder/file-->
最后一个url www.somedomain.com/folder/file未重定向到https。为什么?您的
[或]
还有一个附加条件,可能会导致太多重定向。使用以下方法修复它:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.somedomain\.com$ [NC]
RewriteRule ^/?$ https://somedomain.com [L,R=301]
在测试之前,请完全清除浏览器缓存。此操作将处理所有带参数和不带参数的URL。 的确,在不同的浏览器中,清除缓存并多次尝试重新登录页面是非常重要的。否则,一些旧规则可能适用
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^somedomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.somedomain\.com$ [NC]
RewriteRule ^(.*)$ https://somedomain.com%{REQUEST_URI} [L,NE,R=301]
结果如下:
somedomain.com-->
www.somedomain.com-->
somedomain.com/folder/file-->
www.somedomain.com/folder/file-->
为了加快速度:
DirectoryIndex /index.php
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^typejoy\.biz$
#RewriteCond %{HTTP_HOST} ^typejoy\.biz$ [OR]
#RewriteCond %{HTTP_HOST} ^www\.typejoy\.biz$ [NC]
RewriteRule ^(.*)$ https://typejoy.biz%{REQUEST_URI} [L,NE,R=301]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.typejoy\.biz$ [NC]
RewriteRule ^(.*)$ https://typejoy.biz%{REQUEST_URI} [L,NE,R=301]
RewriteCond %{HTTP_HOST} ^www\.typejoy\.biz$ [NC]
RewriteRule ^(.*)$ https://typejoy.biz%{REQUEST_URI} [L, NE,R=301]
如果有更多规则,我相信您不应该将
L
放入^/?$
匹配文件夹/文件
…?(你的第二个到最后一个例子也不应该使用这个。)我需要它,如果我没有或,我如何从somedomain.com重定向?我已经试过了,没有或者somedomain.com没有重定向到httpsNo,你不需要它。仔细考虑所有条件。这将重定向任何http://www.somedomain.com
,https://www.somedomain.com
,http://somedomain.com
至https://somedomain.com
。您还需要什么?您的htaccess中似乎有很多不必要的代码,这给您带来了问题。在您的问题中发布您的完整.htaccess,以便我可以进行调查并提出相应建议。为什么在问题中使用%{HTTP:X-Forwarded-Proto}
,而在回答中使用%{HTTPS}
?