.htaccess重写条件不打?

时间:2011-10-01 14:51:06

标签: .htaccess mod-rewrite

假设我有两个网站www.sample.com和files.sample.com。

在www.sample.com的webroot中的.htaccess文件中,我有以下内容:

<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteCond %{QUERY_STRING} ^files\/uploads [NC]
  RewriteRule ^(.*)$ http://files.website.com/$1 [NC,L]
</IfModule>

所需的结果是让www.sample.com/files/uploads/file.xmlwww.sample.com/files/uploads/subfolder/file.json的所有请求分别获得302 redirected files.sample.com/files/uploads/file.xmlwww.sample.com/files/uploads/subfolder/file.json

然而,我无法解决这条规则。 www.sample.com网站上根本没有目录“files”。

有谁可以给​​我一些帮助,为什么

2 个答案:

答案 0 :(得分:2)

你可能想要REQUEST_URI而不是QUERY_STRING。

RewriteCond %{REQUEST_URI} ^/files\/uploads [NC]

还要注意领先的斜杠。

答案 1 :(得分:0)

你在apache配置中打开了mod_rewrite吗? 此外,您将'^ files / uploads'更改为^ / files / uploads,将QUERY_STRING更改为PATH_INFO。 QUERY_STRING - 这是'?'之后的所有数据字符。