我可以添加全局apache重写规则,但不能将规则限制到特定目录吗?
例如,在“/”和/ news /
下添加重写规则答案 0 :(得分:0)
你走了:
如果尾随单词是目录
,请不要执行规则RewriteCond%{REQUEST_FILENAME}!-d
如果在网址中找到目录(dir1或dir3或dir4)
,请不要执行该规则RewriteCond%{REQUEST_FILENAME} [^(dir1 | dir3 | dir4)]
同样,您可以在此处测试重写规则:http://martinmelin.se/rewrite-rule-tester/
答案 1 :(得分:0)
重写规则不仅可以应用于<Directory>
部分或.htaccess
文件,而且可以应用于VirtualHost定义中,它们甚至更快,因为需要的工作量更少。
如果您想在 RewriteCond 上播放最终文件或目录名称(因为它尚未确定),您只会遇到一些问题,但是您可以在某些时候播放条件的延迟填充,在this documentation
中查看 LA-U 关键字现在,这也意味着你不能在.htaccess中这样做,因为它是<Directory>
部分的配置挂钩。除了一件事,在.htaccess ina子目录中,您可以设置RewriteOptions inherit
,这意味着应用父目录的规则(因此在父项的.htaccess或Directory部分中设置任何规则)。