htaccess规则打破了css / js

时间:2011-10-11 07:19:03

标签: javascript css .htaccess rewrite

我创建了一个简单的htaccess规则来重写/ jobs / 24到index.php?job = 23

但由于某些原因,这似乎打破了我的整个网站,我的css规则或js文件都不再适用了。

什么可能导致这个问题?

我经常环顾四周,尝试了一些不同的解决方案,但似乎没有任何效果

3 个答案:

答案 0 :(得分:1)

您的重写规则没有任何问题。可能你没有正确地解决你的css / js文件。

让我试着用一个例子来澄清我的意思。假设您的目录结构如下所示:

- index.php
- .htaccess
- js/
    - default.js

现在你在index.php中包含了那个JS文件

<script type="text/javascript" src="js/default.js"></script>

如果直接调用index.php,这将有效 - 但如果你调用jobs/24并将其重写为index.php,则不会。重写不是重定向!客户端不知道它并仍然认为所请求的文件位于目录jobs中。这意味着浏览器将在以下位置查找default.js:/jobs/js/default.js

您可以使用绝对路径来避免此类问题:

<script type="text/javascript" src="/js/default.js"></script>

答案 1 :(得分:0)

很可能您的文件不再被找到,因为所有内容都被重写了。您可以为所需文件添加例外,也可以排除整个目录。

要排除整个目录,只需在该文件夹中创建以下.htaccess文件:

rewriteEngine off

要排除某些路径,请将其置于原始.htaccess

之上
RewriteRule ^(dir1¦dir2¦dir3) - [L]

您可以使用Firebug进行测试,例如,网络标签会显示任何无法加载的文件。

答案 2 :(得分:0)

重写规则也适用于css和javascript网址。看看那些,看看它们是否与重写规则中的模式相匹配。如果是,请使用重写条件排除它们。 See the documentation for details.