.htaccess重定向仅适用于某些页面但不适用于其他页面

时间:2015-07-30 04:35:43

标签: html apache .htaccess redirect

我有一个奇怪的问题,我的.htaccess只重定向某些页面而其他页面没有被重定向。

这是我目前的重定向条件:

<Ifmodule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} "Firefox/[1-3]\." [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Opera/9\..*Version/(1[10]|[1-9])\. [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Opera/[1-8]\." [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "MSIE [1-8]\." [NC]
RewriteRule ^$ http://www.mytestingdomain.com/browser-upgrade.html [L,R=302]
</Ifmodule>

例如,如果我使用IE8,www.mytestingdomain.com/about.html将被重定向,但如果我使用IE8,www.mytestingdomain.com/search.html将无法重定向。

我的.htaccess文件夹中有一个或两个www文件,但这些只是简单的.htaccess文件,它们会阻止目录列表,不应影响简单的HTML页面。

我的问题是,为什么我的上述重定向条件仅适用于某些HTML页面而不适用于其他HTML页面?

由于

1 个答案:

答案 0 :(得分:1)

我甚至不知道它是如何重定向的,因为你的模式只能重定向root。我会更改RewriteRule,以便pattern匹配URI中的任何字符。

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} "Firefox/[1-3]\." [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Opera/9\..*Version/(1[10]|[1-9])\. [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Opera/[1-8]\." [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "MSIE [1-8]\." [NC]
RewriteRule ^.* http://www.mytestingdomain.com/browser-upgrade.html [L,R=302]