Apache htaccess重写条件在internet explorer中不起作用

Apache htaccess重写条件在internet explorer中不起作用,apache,.htaccess,internet-explorer,Apache,.htaccess,Internet Explorer,我们有多个相同代码的网站。问题是,这在Firefox、Chrome等浏览器中正常工作,但在IE中不起作用 我的建议是internet explorer发送不同/不正确的HTTP\U主机。但我不明白为什么。有人能帮我找到正确的方向吗。 我已经在下面发布了htaccess文件 代码应该做什么: 1.检查请求是否针对站点地图 2.将www重定向到http 3.如果网站不是website.nl,请使用http 4.如果网站是website.nl,请使用https 5.将request.php文件用于所有

我们有多个相同代码的网站。问题是,这在Firefox、Chrome等浏览器中正常工作,但在IE中不起作用

我的建议是internet explorer发送不同/不正确的HTTP\U主机。但我不明白为什么。有人能帮我找到正确的方向吗。 我已经在下面发布了htaccess文件

代码应该做什么: 1.检查请求是否针对站点地图 2.将www重定向到http 3.如果网站不是website.nl,请使用http 4.如果网站是website.nl,请使用https 5.将request.php文件用于所有请求

RewriteEngine On

RewriteBase /

RewriteRule ^sitemap\.xml/?$ generate_sitemap.php [NC,L]

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

RewriteCond %{HTTP_HOST}  !^(www\.)?website.nl$ [NC]
RewriteCond %{HTTP_HOST}  ^$
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^(www\.)?website.nl$ [NC]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((.|/)*)$ /request.php?path=$1 [QSA,L]

Internet Explorer不太可能发送比Chrome和Firefox更多的
主机
头。可能您看到的是Internet Explorer缓存了一个旧的、错误的重写规则(您使用的是
301
永久重定向,它们会缓存在浏览器中)。也可能是Chrome和Firefox缓存了一条旧规则

请清除浏览器缓存或使用专用/匿名模式,然后重试

我建议您使用
302
临时重定向,直到您确认所有规则都正常工作

如果上述内容确实有助于您解决问题:

您可以在此处测试重写规则:

通过按F12/networking view,您可以在Internet Explorer的开发者控制台中查看请求头,包括主机头


还要检查Internet Explorer和调制解调器/路由器设置,以验证您是否意外使用了代理。

我发现它处于无限循环中。仅在internet explorer中。它一直连接到。所以我一直在扮演https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]找到了解决方案:不得不更改https!=正在重写cond%{SERVER\u PORT}!非常感谢