如何添加全局apache重写规则?

时间:2011-07-02 04:24:01

标签: apache mod-rewrite

我可以添加全局apache重写规则,但不能将规则限制到特定目录吗?

例如,在“/”和/ news /

下添加重写规则

2 个答案:

答案 0 :(得分:0)

你走了:

  1. 如果尾随单词是目录

    ,请不要执行规则

    RewriteCond%{REQUEST_FILENAME}!-d

  2. 如果在网址中找到目录(dir1或dir3或dir4)

    ,请不要执行该规则

    RewriteCond%{REQUEST_FILENAME} [^(dir1 | dir3 | dir4)]

  3. 同样,您可以在此处测试重写规则:http://martinmelin.se/rewrite-rule-tester/

答案 1 :(得分:0)

重写规则不仅可以应用于<Directory>部分或.htaccess文件,而且可以应用于VirtualHost定义中,它们甚至更快,因为需要的工作量更少。

如果您想在 RewriteCond 上播放最终文件或目录名称(因为它尚未确定),您只会遇到一些问题,但是您可以在某些时候播放条件的延迟填充,在this documentation

中查看 LA-U 关键字

现在,这也意味着你不能在.htaccess中这样做,因为它是<Directory>部分的配置挂钩。除了一件事,在.htaccess ina子目录中,您可以设置RewriteOptions inherit,这意味着应用父目录的规则(因此在父项的.htaccess或Directory部分中设置任何规则)。