我的实际网址如下。 http://localhost/waterpump/index.php?param1=4498¶m2=930¶m3=876¶m4=201¶m5=vis
但我的客户想要以下格式。 http://localhost/waterpump/param1/4498/param2/930/param3/876/param4/201/param5/vis
而且我还可以使用 $_GET["param1"] 获取数据
我怎样才能通过 .htaccess 做到这一点?
我的实际网址如下。 http://localhost/waterpump/index.php?param1=4498¶m2=930¶m3=876¶m4=201¶m5=vis
但我的客户想要以下格式。 http://localhost/waterpump/param1/4498/param2/930/param3/876/param4/201/param5/vis
而且我还可以使用 $_GET["param1"] 获取数据
我怎样才能通过 .htaccess 做到这一点?
例如
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^blog/([0-9]+)-([a-z]+) http://corz.org/blog/index.php?archive=$1-$2 [NC]
我不确定参数的数量是固定的还是可变的,但你基本上会做一个匹配的部分,你匹配用斜杠分隔的 url,然后你会将它“重写”为原始 url
如果您设置使用 $_GET 来获取参数并且总会有 1 到 5 个参数,那么您可以使用以下重写:
RewriteEngine On
RewriteRule ^waterpump/param1/(.*)/param2/(.*)/param3/(.*)/param4/(.*)/param5/(.*)/ /index.php?param1=$1¶m2=$2¶m3=$3¶m4=$4¶m5=$5 [nc]
RewriteRule ^waterpump/param1/(.*)/param2/(.*)/param3/(.*)/param4/(.*)/ /index.php?param1=$1¶m2=$2¶m3=$3¶m4=$4 [nc]
RewriteRule ^waterpump/param1/(.*)/param2/(.*)/param3/(.*)/ /index.php?param1=$1¶m2=$2¶m3=$3
RewriteRule ^waterpump/param1/(.*)/param2/(.*)/ /index.php?param1=$1¶m2=$2 [nc]
RewriteRule ^waterpump/param1/(.*)/ /index.php?param1=$1 [nc]
已编辑
如果您已正确执行此操作,请执行 print_r($_GET); on /waterpump/param1/x/param2/y/param3/z/ 应该给你类似的东西:
array (
'param1'=>x,
'param2'=>y,
'param3'=>z,
);
有更简洁的方法可以减少重写,但对您的 PHP 进行一些更改。此外,上述方法仅适用于水泵。除了水泵还有别的吗?