2012-08-07 99 views
-1

我在我的网站上有一个重写规则。它把这个链接:modrewrite不加载我的CSS和图像

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] 

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

任何帮助,将不胜感激!

回答

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" /> 
+0

这一次果然奏效路径(也图像等)时使用的根浏览器,你可以解释一下为什么我需要包含/? – fackz 2012-08-07 14:23:57

+0

它将它带到目录的根目录。 现在,如果您不这样做,它会尝试抓取图像/ css: http://www.qblza.com.br/232/file/to/path/style.css而不是http: //www.qblza.com.br/file/to/path/style.css – Jake 2012-08-07 14:25:25

+0

谢谢杰克,明白了! – fackz 2012-08-07 14:33:27

0

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

1

问题是您正在为静态资源使用相对路径。 所以加载不可改写的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" /> 

因此,您的浏览器将明确遵循从域根

解决方案2:使用基本标签

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

它告诉以下

+0

基地href完全解决了我的问题!非常感谢!! – fackz 2012-08-07 14:33:48