有太多的朋友会碰到一个问题,那就是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。当然,如果全是放在了根目录下,可能还会冲突,不过,又有几个人把不同样的程序放在一个目录下呢?那样不但不容易管理,对以后程序的升级也带来很多的麻烦。