.htaccess - 设置每个目录“根”

时间:2011-11-14 23:58:57

标签: apache .htaccess configuration apache2

这是我目前的“共享”服务器配置:

http://hello.com/ maps to /
# There are a bunch of HTML files under /

http://hello.com/sub-1/ maps to /sub-1/

现在我需要将新的“网站”上传到http://hello.com/sub-2/。但是,此捆绑包中的所有HTML文件都使用绝对路径引用CSS和图像,例如<img src="/images/header.png" />

如何在不必更改站点文件的情况下配置服务器?

以下讨论(thisthat)具有与此类似的性质。但是,我想要将根文件夹更改为http://hello.com/sub-2/

谢谢!

1 个答案:

答案 0 :(得分:0)

如果没有将所有图像引用更改为相对路径(或包含sub-2),就没有办法真正做到这一点。

一种hacky方式可能是-f使用RewriteCond标志,将从/ images加载到/ sub-1 / images或/ sub-2 / images的任何内容都改变,具体取决于目标图像存在的位置。一个例子可能是这样的:

RewriteCond -f sub-1/{$REQUEST_URI}
RewriteRule (images/.+) sub-1/$1

RewriteCond -f sub-2/{$REQUEST_URI}
RewriteRule (images/.+) sub-2/$1

当然,目录中的冲突会破坏一切。我的mod_rewrite经验也有点生疏,所以语法可能不是100%正确,但你明白了。