.htacces重写条件不打?
问题描述:
可以说我有两个网站www.sample.com和files.sample.com。.htacces重写条件不打?
在www.sample.com的根目录内的.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.xml
或www.sample.com/files/uploads/subfolder/file.json
所有请求得到302 redirected
到files.sample.com/files/uploads/file.xml
和www.sample.com/files/uploads/subfolder/file.json
,分别。
但是,我无法让规则开火。 www.sample.com网站上根本不存在“文件”目录。
谁能给我一点点的帮助,为什么
答
您可能需要REQUEST_URI而不是QUERY_STRING。
RewriteCond %{REQUEST_URI} ^/files\/uploads [NC]
另请注意引导斜线。
答
你在你的Apache配置开启了mod_rewrite? 另外,您还可以将'^ files/uploads'更改为^/files/uploads,将QUERY_STRING更改为PATH_INFO。 QUERY_STRING - 这是'?'后的所有数据字符。
两个域指向相同的wwwroot? –