前端录网站,记录前端点点滴滴,帮助程序猿快速成长!

.htaccess伪静态顺序问题

PHPCMSV9
写伪静态规则要注意顺序,伪静态顺序问题可能会导致规则冲突,在htaccess文件中和nginx配置上的伪静态都要注意这个问题,伪静态的优先级是按照伪静态规则的先后执行的,往往前面的伪静态和后面的产生冲突,这个时候要调整伪静态顺序。举个例子:

RewriteRule ^newslist/1/index_([0-9]+).html index.php?m=content&c=index&a=lists&catid=14&page=$1
RewriteRule ^newslist/1/$ index.php?m=content&c=index&a=lists&catid=14
RewriteRule ^newslist/2/index_([0-9]+).html index.php?m=content&c=index&a=lists&catid=15&page=$1
RewriteRule ^newslist/2/$ index.php?m=content&c=index&a=lists&catid=15

看这个伪静态规则,为什么第一句要写到第二句前面?

第一个是有分页的情况下的url形式,定义的伪静态规则,第二句是没有分页的情况。如果顺序反了,那么有分页的情况就得不到正确的伪静态规则,因为这两句伪静态规则前面url部分都是一样的,有分页的伪静态规则如果首先遇到没有分页的,就会直接执行了。伪静态顺序的写法一般遵循:多个路由规则相似的伪静态规则,有具体更多细节的那个伪静态规则放在最前面。



转载请注明:前端录».htaccess伪静态顺序问题