重写规则是这样的:
RewriteRule ^(.*)/(.*)$ index.php?search=$1&Page=$2
对样式表的引用如下:
<link type="text/css" rel="stylesheet" href="/css/style.css">
当我把放在样式表上重写时被忽略。请帮我写正确的规则,谢谢!
这是在。htaccess中完成的,在根目录/
我假设您不希望重定向任何针对实际存在的文件的请求,而不仅仅是CSS文件。例如,如果您有一个/images
目录,其中包含图像文件,那么您可能不希望PHP脚本处理该目录,就像您不希望它处理CSS文件一样。
这些是交付的"标准"规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
这些条件表示"如果下面的条件为假,忽略下一个RewriteRule
"。要评估的实际条件是检查,以确保请求不是针对实际存在的文件或目录。
这意味着当您请求/css/style.css
时,Apache将看到该名称的文件已经存在,因此它将忽略您的重写并直接提供文件。
指向样式表的链接被重写为index.php。为了避免这种情况,可以这样开头:
RewriteRule ^css/ - [NC,L]
这将导致css目录中的任何内容都不会被重写(除非由于某种原因,css中存在。htaccess文件,这是不寻常的)。