Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache htaccess不理解^www\。规则,如果参数附加到url_Apache_.htaccess - Fatal编程技术网

Apache htaccess不理解^www\。规则,如果参数附加到url

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

.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} ^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}