伪静态是没有办法实现参数运算的。他只可以对参数进行传递,不能进行运算。更不可以进行一些通信、sql读取等。所以如果是要进行跳转,就只能让动态程序去操作运算。
今天我们就见到一个客户,想要实现参数之间的运算。比如说,这样的效果:
rewrite ^/([0-9]+)/([0-9]+)/([0-9]+).html$ bbb./$1/$2/$3.html redirect; 使$1的值加10输出,$2的值加20输出, aaa./100/200/300.html 跳转到 bbb./110/220/300.html这个时候,就需要获得网址的参数,然后进行加法运算,实际上是无法实现的。但我们可以有另外一个思路,那就是做一个动态程序,把伪静态网址映射到动态网址上,然后实现跳转,思路如下:
第一步:写好伪静态映射规则
上边的那个需求,就可以写成这样的伪静态规则:
rewrite ^/([0-9]+)/([0-9]+)/([0-9]+).html$ /tz.php?a=$1&b=$2&c=$3 redirect;
第二步:写好动态程序
t.php的动态程序,可以写好。
<?php $a=$_GET['a']; $b=$_GET['b']; $c=$_GET['c']; $a=$a+10; $c=$b+20; $url="http://www.zishitou.com/".$a."/".$b."/".$c.".html"; die($url); header('HTTP/1.1 301 Moved Permanently');//发出301头部 header('Location:'.$url);//跳转到我的新域名地址 ?>
这个时候,php就可以获得参数,进行运算,并且进行跳转。
还没有人来评论,快来抢个沙发吧!