重写和样式表问题的相对路径

时间:2011-04-06 18:41:06

标签: php apache mod-rewrite

Rewriterule就是这样:

RewriteRule ^(.*)/(.*)$ index.php?search=$1&Page=$2

对样式表的引用是这样的:

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

当我把重写放在样式表上时会被忽略。请帮我写出正确的规则,谢谢!

这是在root /

的.htaccess中完成的

2 个答案:

答案 0 :(得分:1)

您的样式表链接正在重写为index.php。要避免这种情况,请从以下内容开始:

RewriteRule ^css/ - [NC,L]

这将导致css目录中的任何内容都不被重写(除非出于某种原因在css中出现.htaccess文件,这将是不寻常的。)

答案 1 :(得分:1)

我假设您不想重定向对实际存在的文件的任何请求,而不仅仅是CSS文件。例如,如果你有一个带有图像文件的/images目录,你可能不希望你的PHP脚本处理它比你希望它处理你的CSS文件更多。

这些是提供该标准的“标准”规则:

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

这些条件说“如果以下条件为假,则忽略下一个RewriteRule。正在评估的实际条件是检查以确保请求不是针对实际存在的文件或目录。” / p>

这意味着当您请求/css/style.css时,Apache会看到该名称中存在已存在的文件,因此它将忽略您的重写并直接提供该文件。