mod_rewrite更改当前目录

ast*_*anu 1 php apache .htaccess mod-rewrite

我有一个php文件,它根据给定的变量从db加载一篇文章.站点的根目录中还有一个.htacces文件.我在htaccess中使用它来重定向

RewriteRule ^ articles /([a-zA-Z0-9 -_\s] +).html $ template/index.php?action = viewarticle&alias = $ 1

重定向后,页面显示正常,但页面中的html出错,例如:

media/2011/02/21/logos.jpg 变成 articles/media/2011/02/21/logos.jpg

发生这种情况是因为htacces正在重定向.无论如何都要在保持根目录不变的情况下进行此重定向?

Pek*_*ica 5

这种情况发生在因为htacces重定向.

不,这是因为浏览器认为如此

example.com/articles/my_article.html
Run Code Online (Sandbox Code Playgroud)

/articles子目录中的资源,并将所有相对URL视为相对URL /articles.

没有办法改变这种行为.

您将需要开始使用绝对图像引用或考虑附加目录的相对图像引用:

<img src="/media/2011/02/21/logos.jpg">      <------ recommended
<img src="../media/2011/02/21/logos.jpg">
Run Code Online (Sandbox Code Playgroud)

您也可以<base>按照@Boris的建议使用,但绝对路径(或完整的URL)在我看来是一个非常清晰的问题解决方案.