Apache .htaccess重定向到子域不工作

Apache .htaccess重定向到子域不工作,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我在site.com根目录下的.htaccess文件中有以下代码: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^(www\.)?site\.com$ RewriteRule ^files(.*)$ http://files.site.com/$1 [L,R=301,QSA] 我想将site.com/files/path?query重定向到files.site.com/path?query,但由于某些原因它无法工作。有人能告诉

我在site.com根目录下的.htaccess文件中有以下代码:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?site\.com$
RewriteRule ^files(.*)$ http://files.site.com/$1 [L,R=301,QSA]

我想将
site.com/files/path?query
重定向到
files.site.com/path?query
,但由于某些原因它无法工作。有人能告诉我为什么吗?

它不是正常工作,而是做什么?你还有其他重写规则吗?
site.com/files/
上的目录是否确实存在,如果存在,它内部是否有自己的.htaccess?您的规则看起来应该像您定义的那样工作。@MichaelBerkowski它什么也不做,因此用户实际上停留在
site.com/files/path?query
/files/path
存在并且
files
文件夹实际上有自己的.htaccess文件。这就是原因吗?我删除了
/files/.htaccess
,它可以正常工作。但为什么会这样呢?
/files/.htaccess
文件是否覆盖了
/.htaccess
,或者什么?如果
/files
中的.htaccess有自己定义的重写规则,或者甚至在
上存在
重写引擎,它将替换目录层次结构中定义的任何更高的规则。我不认为即使没有定义mod_rewrite内容,只要存在.htaccess也会覆盖任何更高的规则,但是如果在
/files/.htaccess