0

我有这两个规则:

RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^categories$ home.php?categories=1[L,NC,PT,R=301]
RewriteRule ^featured$ home.php?featurez=1 [L,NC,PT,R=301]

问题是类别有效而特色无效。作品:

 http://apps.com/iphone/categories

不起作用:

 http://apps.com/iphone/featured

不起作用的第二条规则将我发送到这里

 http://apps.com/var/www/vhosts/apps.com/httpdocs/iphone/home.php?featurez=1

它似乎向我发送了我的目录根目录的根目录,并且整个内容都以我网站的根目录为前缀..为什么?

这怎么可能。

4

1 回答 1

1
  1. 重写条件仅适用于紧随其后的规则,因此您的条件根本不适用于“特色”规则。你必须复制它。
  2. Apache 尝试猜测规则的目标是 URL 路径还是文件路径,但它猜测不正确。您可以尝试通过包含重写基础或使您的目标成为绝对 URL 路径来修复它。

我已经在您之前的问题中回答了这个问题,使用这些解决方案中的任何一个都可以修复重定向中出现的文件路径。

RewriteBase /iphone/
RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^categories$ home.php?categories=1[L,NC,PT,R=301]
RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^featured$ home.php?featurez=1 [L,NC,PT,R=301]

或者

RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^categories$ /iphone/home.php?categories=1[L,NC,PT,R=301]
RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^featured$ /iphone/home.php?featurez=1 [L,NC,PT,R=301]
于 2012-11-11T08:47:35.033 回答