使用mod_rewrite在每个文件请求之前添加一个文件夹?

时间:2010-11-07 23:38:01

标签: .htaccess mod-rewrite

我正在本地服务器和远程服务器上开发一个站点。在开发过程中,服务器已经在url.com/~user中,而在开发中的本地主机上,我只是在root中进行开发。即如果我在本地服务器上包含一个文件,我只是简单地引用“/img/img.png”...虽然这显然会在远程服务器上返回404,因为它会寻找“/〜用户/img/img.png”。

这与@ Problems with pointing to files on local server versus remote回答的问题相同,但我想知道的是,这可以用mod_rewrite解决吗?定义SITE_ROOT在php文件中工作......但它不能修复CSS表中引用的文件。

是否可以简单地告诉我的远程服务器将/ ~user /添加到每个文件包含?即/img/img.png变成/~user/img/img.png?

感谢您的任何指示。

1 个答案:

答案 0 :(得分:3)

我要猜测你是在生产中的某种共享服务器上。你的情况的问题是像http://example.com/img/some.jpg之类的东西会产生一个请求(没有特殊的设置)不会在http://example.com/~user/的web目录中命中.htaccess。因此,除非您可以访问服务器范围的apache配置,否则这对您无效。

如果您想要使用此路线,您可以将URL写为/〜/ user /img / ones.jpg。您可以在开发服务器上重写,然后摆脱〜用户。

更好的是,为什么要包括领先的斜线?这样,你只需要img / some.jpg,这将是一个相对的路径。如果您引用http://localhost/index.html中的图片,则会提取http://localhost/img/some.jpg。如果您引用http://example.com/~user/index.html中的图片,则会提取http://example.com/~user/img/some.jpg

最后,在开发服务器上只有一个~user目录,这两个地方都是一样的吗?