mod_rewrite不加载我的CSS和图像

时间:2012-08-07 14:08:29

标签: php apache .htaccess

我的网站上有重写规则。它会转换此链接:

http://www.qblza.com.br/anuncio_detalhes.php?ida=232&title=samsung-duos-camera-2-mp-redes-sociais-2-chips-bluetooth.html

进入这个:

http://www.qblza.com.br/232/samsung-duos-camera-2-mp-redes-sociais-2-chips-bluetooth.html

这是我正在使用的重写规则:

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /anuncio_detalhes.php?ida=$1&title=$2 [L]

问题是,当用户点击重写网址时,该网站不会加载任何CSS和图片...它只是加载文本...我不知道为什么会发生这种情况。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:2)

在样式表,图片上,以及是否有javascript源代码。在位置前键入“/”。

图片:

<img src="/file/to/path/image.jpg" />

样式表:

<link ref="stylesheet" href="/file/to/path/style.css" />

使用Javascript:

<script src="/file/to/path/javascript.js" />

答案 1 :(得分:1)

问题是您正在使用静态资源的相对路径。 所以当加载一个rewrite-url时,浏览器就会看到这个:

<link id="menu-color" type="text/css" rel="stylesheet" href="css/menu-gray.css">

并尝试加载

http://www.qblza.com.br/232/samsung-duos-camera-2-mp-redes-sociais-2-chips-bluetooth.html/css/menu-gray.css

解决方案1:使用绝对路径加载静态资源:

<link rel="stylesheet" type="text/css" href="/css/menu-gray.css" />

所以你的浏览器肯定会遵循domain-root

的路径

解决方案2:使用base-tag

<base href="http://your-domain.com" />

使用此功能,您可以告诉浏览器在跟踪路径时使用哪个根(也包括图像等)

答案 2 :(得分:0)

没有看到html,我会说最可能的问题是图像和CSS的网址。当您像往常一样重写网址时,需要使用绝对网址(相对于网站根目录)。