Apache伪静态时rewrite匹配参数超过10个的处理方法

王朝学院·作者佚名  2016-08-08
窄屏简体版  字體: 小  |  中  |  大  |  超大  

RewriteRule反向引用 ,引用方法是:$N (0 <= N <= 9)引用当前(带有若干RewriteRule指令的)RewriteCond中的与Pattern匹配的分组成分(圆括号!)。

RewriteCond反向引用 ,引用方法是:%N (1 <= N <= 9)引用当前若干RewriteCond条件中最后符合的条件中的分组成分(圆括号!)

授人以鱼不如授人以渔,下面来给大家演示下实现的过程

首先你要有个环境,要支持伪静态,然后测试。新建一个以1命名的web文件夹,并建立php文档,命名为:index.php 文档代码如下:

<?PHP

echo $_GET['a'].'<br>';

echo $_GET['b'].'<br>';

echo $_GET['c'].'<br>';

echo $_GET['d'].'<br>';

echo $_GET['e'].'<br>';

echo $_GET['f'].'<br>';

echo $_GET['g'].'<br>';

echo $_GET['h'].'<br>';

echo $_GET['i'].'<br>';

echo $_GET['j'].'<br>';

echo $_GET['k'].'<br>';

echo $_GET['l'].'<br>';

echo $_GET['m'].'<br>';

echo $_GET['n'].'<br>';

?>

复制代码

这个php来实现url传递参数,a-n,14个参数,超过了9个

接着来写.htaccess文件

RewriteEngine On

RewriteRule ^a(.*)b(.*)c(.*)d(.*)e(.*)f(.*)g(.*)h(.*)$ $8&a=$1&b=$2&c=$3&d=$4&e=$5&f=$6&g=$7 [C,NC]

RewriteRule ^(.*)i(.*)j(.*)k(.*)l(.*)m(.*)n(.*)$ index.php?$8&h=$1&i=$2&j=$3&k=$4&l=$5&m=$6&n=$7 [QSA,L,NC]

RewriteRule ^index-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?).html$ $9&a=$1&b=$2&c=$3&d=$4&e=$5&f=$6&g=$7&h=$8 [C,NC]

RewriteRule ^(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)$ index.php?$7&i=$1&j=$2&k=$3&l=$4&m=$5&n=$6 [QSA,L,NC]

如果你运行上面地址会出现1-14的数字则说明你的配置成功了

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航