htaccess重写在父目录上工作,但不在子目录中工作

时间:2012-05-03 22:23:09

标签: apache mod-rewrite

所以我有两个站点在不同的域上,但共享很多相同的资源(样式表,图像,脚本)。可以将这些网站称为A.comB.com

在这两个站点的每个站点中,子目录中都有另一个站点。同样,他们都使用相同的资源。让我们调用其中每个网站A.com/subB.com/sub

我尝试通过重定向来自A.comA.com/subB.com的任何图片,脚本或样式表请求,在所有网站中使用B.com/sub的资源到A.com

示例:

http://A.com/sub/images/foo/bar.jpg  =>  http://A.com/images/foo/bar.jpg
http://B.com/images/foo/bar.jpg      =>  http://A.com/images/foo/bar.jpg 
http://B.com/sub/images/foo/bar.jpg  =>  http://A.com/images/foo/bar.jpg

我现在是怎么做的:

A.com/sub的工作原理是将所有图片,脚本或样式表请求重写为../

RewriteRule (.*)\.(gif|jpg|png|css|js)$ ../$1.$2 [R]

B.com的工作方式大致相同,但不会重写为../,而是会重写为A.com

RewriteRule (.*)\.(gif|jpg|png|css|js)$ http://A.com/$1.$2 [R]

但是,与我的期望相反,B.com/sub使用相同的重写不起作用:

RewriteRule (.*)\.(gif|jpg|png|css|js)$ http://A.com/$1.$2 [R]

为什么这种重写模式在每种情况下都能很好地运作,但是B.com/sub

注意

我必须为每个网站设置.htaccess,并且必须以这种方式设置网站(即A.comA.com/sub)。不是我的决定,我不能改变它。

0 个答案:

没有答案