apache伪静态参数超过9个的解决办法

2013-11-28 寒川 计算机

apache服务器,利用.htaccess做伪静态筛选,由于条件比较多,且筛选的参数和值均为伪静态参数,一个7个筛选条件就多大14个伪静态参数。简直坑爹啊。下面是解决办法:

RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)\.html /a.php?$1=$2 [L]
RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)\.html /a.php?$1=$2&$3=$4 [L]
RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)\.html /a.php$1=$2&$3=$4&$5=$6 [L]
RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)\.html /a.php?$1=$2&$3=$4&$5=$6&$7=$8 [L]
#上面参数未超过9个,下面超过9个参数的情况。
RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(.*)\.html a-$9\.html$1=$2&$3=$4&$5=$6&$7=$8 [C,NC]
RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)\.html(.*) /a.php?$1=$2&$3 [QSA,L,NC] #结合上一行,共计10个参数。
RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)\.html(.*) /a.php?$1=$2&$3=$4&$5 [QSA,L,NC] #结合第6行,共计12个参数。
RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)\.html(.*) /a.php?$1=$2&$3=$4&$5=$6&$7 [QSA,L,NC] #结合第6行,共计14个参数。
RewriteRule ^a-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)-(a|b|c|d|e|f|g)([0-9]+)\.html(.*) /a.php?$1=$2&$3=$4&$5=$6&$7=$8&$9 [QSA,L,NC] #结合第6行,共计16个参数。

访问地址分别如下:

a-a1.html 对应url参数为a.php?a=1(其中参数a可以为b、c、d、e、f、g)
a-a1-b1.html 对应url参数为a.php?a=1&b=1
……
a-a1-b1-c1-d1-f1-g1.html 对应url参数为a.php?a=1&b=1&c=1&d=1&e=1&f=1&g=1

对于上述第4行,共计14个伪静态参数。

标签: apache 伪静态 htaccess 超过9个参数

发表评论:

Powered by emlog 蜀ICP备12030225号

川公网安备 51042102000001号

sitemap