.htaccess 重定向会导致 CSS 或图像加载


.htaccess redirect causes css nor images to load

我有以下.htaccess来强制所有文件通过索引.php文件,我刚刚注意到我对css,javascript,图像的所有引用都停止工作。我认为是导致这种情况的 htaccess,如果是这样,我该如何解决这个问题?

这是我的.htaccess文件:

<IfModule mod_rewrite.c>
# redirect all calls to index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>

典型的原因是您的 HTML 模板包含指向资源的相对链接。

<link rel="stylesheet" type="text/css" href="main.css">

一旦您的页面不再驻留在/index.html下而是驻留在/app/index中,就会失败。现在,您的 URL 中有一个新的虚拟目录,因此,如果您没有在所有地方指定绝对路径名/img/logo.png,则假定 CSS 和图像也位于 /app/ 下。

一个经典的解决方法是将其添加到模板<head>中:

<base href="/">

这将强制浏览器将/(在本例中)附加到所有相关资源链接。