好的我还有另一个问题,我是初学者。
我有这个RewriteRule,它正确地重定向查询但不允许我使用其他目录:
RewriteRule ^([0-9A-Za-z]+)/?$ /query.php?id=$1 [L]
现在这个RewriteRule要跳过所有这些目录,但现在需要注释上面的规则才能实现。
RewriteRule ^(css|js|admin|pages|includes|images)(/|$) - [L]
我可以将两者结合起来吗?如果是这样,怎么样?
答案 0 :(得分:4)
RewriteRule
按照它们在文件中出现的顺序进行检查,因此如果先放置css|js|admin|pages|includes|images
规则,它将首先匹配并在达到其他规则之前停止重写过程。只需确保将[L]
标记保留在该规则的末尾。
答案 1 :(得分:0)
还有这个巧妙的伎俩:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+) query.php?id=$1 [L]
也就是说,如果文件路径不是现有的文件或目录,请将请求发送到PHP脚本(这样您可以动态加载某个模块或显示有用的404页面。)