0
RewriteEngine on

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

RewriteCond %{REQUEST_URI} !(.*)\.(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC]
RewriteRule ^(.*)$ index.php?path=$1 [QSA,L]

这个 .htaccess 将所有内容重定向到index.php?path=SOMETHING我可以拾取它的位置(某些路径)并显示适当的内容(视图)。

问题在于包含.css/.js文件。

如果我使用www.website.com/something一切正常(css 路径就像/css/style.css它正在搜索www.website.com/css/style.css)。但是如果我使用www.website.com/something/2一切都会崩溃,因为它正在www.website.com/something/css/style.css文件夹中搜索。

如何将根(?)每次设置为www.website.com(无论路径是什么)?所以我仍然应该可以访问我的“路径”变量/some/...,但是在包含我的文件时,一切都应该指向网站根目录而不是路径。

4

1 回答 1

2

问题在于您如何编写指向 css/js/image 文件的链接。

而不是使用当前页面的相对 URL 包含 css/js/images:

href="css/style.css"

您应该使用相对于根目录的 URL(注意前导斜杠):

href="/css/style.css"

或使用绝对 URL(将包括域名 - 不太受欢迎的方法)。

当网站使用 Nice URLs/URL Rewritting 时,这是设计网站(html 部分)时的典型错误。这是 - 现在重写引擎会破坏 URL - 是浏览器/something/css/style.css首先发送它们( )。

于 2012-04-23T15:20:46.857 回答