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个伪静态参数。