URL重写后缺少CSS和图像

时间:2014-05-03 12:36:23

标签: css .htaccess mod-rewrite

Stackoverflow上有很多关于此的信息,但似乎没有什么对我有用!我已经在.htaccess文件中重写了一些URL并且它正在工作,但后来我发现CSS和图像丢失了。我阅读并阅读了如何改变从相对到绝对的路径,但我不支持这有帮助,或者我可能做错了!?

.htaccess文件:

RewriteRule ^bilder-byggnader-kopenhamn$ /?p=byggnader [L]
RewriteRule ^bilder$ /?p=byggnader [L]
RewriteRule ^byggnad/(.+)$ /?p=byggnad&id=$1 [L]

它只是.htaccess文件中导致此问题的第三行。第一行和第二行不会影响CSS和图像。

从一开始我的CSS文件就像这个styelsheet.css一样,因为它位于根目录中。然后我将其更改为http://127.0.0.1/stylesheet.css,但它仍然无法正常工作。我还没有用图片完成这个,但我想我应该像http://127.0.0.1/images/image.jpg一样。

2 个答案:

答案 0 :(得分:0)

您应该考虑添加:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

所以重写规则不适用于现有文件和目录(例如图像和样式表)

答案 1 :(得分:0)

首先修改你的规则:

RewriteEngine On

RewriteRule ^bilder-byggnader-kopenhamn$ /?p=byggnader [L,QSA]
RewriteRule ^bilder$ /?p=byggnader [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^byggnad/(.+)$ /?p=byggnad&id=$1 [L,QSA]

然后确保在css,js,images文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径以http://或斜杠/开头。