在.htaccess配置详解一文中,我们曾经介绍了htaccess文件的基本语法与书写规则,今天主要为大家说说htaccess的作用范围。
不知道大家是否遇到过htaccess文件冲突的问题,比如说,一个站点,全站是用伪静态,并且是用的虚拟主机,那就必须要用.htaccess文件规则来实现,同时用cms文件做门户用DZ做BBS,用WP做BLOG,我只知道WP与DZ程序的静态化就会存在着冲突,可能会导致DZ的静态化文件失效。这样的话,就用到了htaccess文件的作用范围。
来看一个最标准的htaccess文件:
# BEGIN <IfModule mod_rewrite.c> RewriteBase /products RewriteEngine on RewriteRule ^index-page([0-9]*)(/)?$ index.php?page=$1 RewriteRule ^([0-9]+)(/)?$ products.php?id=$1 </IfModule> # END
此文件的RewriteBase 属性就是作用范围,不单单是.htaccess文件放置位置,这个属性是一个绝对路径,当然也是.htaccess的存放的路径,而下面的所有规则将相对于此路径生效。
这样的话,WP与DZ冲突的问题就可以解决了,可以把WP的htaccess文件放在blog下,然后把bbs目录下放上dz的htaccess。
当然,如果全是放在了根目录下,可能还会冲突,不过多个程序全在根目录的情况太少了。