.htaccess重定向导致css和图像加载

时间:2011-05-08 03:22:01

标签: php .htaccess

我有以下.htaccess强制所有文件都通过index.php文件,我只是注意到我对css,javascript,images的所有引用都停止了工作。我认为导致这种情况的是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>

1 个答案:

答案 0 :(得分:2)

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

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

一旦您的网页不再位于/index.html但位于/app/index下,您就会失败。您现在在URL中有一个新的虚拟目录,因此如果您没有在任何地方指定绝对路径名/app/,那么假设CSS和图像也位于/img/logo.png下。

一个经典的解决方法是在模板<head>中添加它:

<base href="/">

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