【发布时间】:2016-12-25 00:32:20
【问题描述】:
我想创建一个 RewriteRule 来获取路径名 URL 的每个部分。
这是一个示例:
假设我称这个 URL 为:
127.0.0.1/service/param1/param2/param3/param4/param5/param6
我想用这个来转换这个调用:
127.0.0.1/index.php?s=service&p_1=param1&p_2=param2&p_3=param3&p_4=param4&p_5=param5&pa_6=param6
我尝试了很多不同的正则表达式,但不幸的是都没有成功。
这是我非常有信心的一个,但它失败了
RewriteRule ^(str)[/]?(.*)[/]?(.*)[/]?(.*)[/]?(.*)[/]?(.*)[/]?(.*)$ /index.php?s=$1&p_1=$2&p_2=$3&p_3=$4&p_4=$5&p_5=$6&p_6=$7 [L,NC,QSA]
任何帮助将不胜感激!
【问题讨论】:
-
这些参数是可选的吗?
-
几乎可以肯定没有这样的选项,但您可以使用 PHP 轻松做到这一点。只需 RewriteRule 将所有内容写入
index.php文件,然后在该 php 文件中进行拆分 -
您的网址中没有
str。(service)[/]?(.*)[/]?(.*)[/]?(.*)[/]?(.*)[/]?(.*)[/]?(.*)$应该这样做。/也不需要在字符类中,您可能需要/s 和介于两者之间的值。例如(service)/(.+?)/(.+?)/(.+?)/(.+?)/(.+?)/(.*)$. -
@Sumurai8 是的,有。
-
@chris85 我要试试看!谢谢!
标签: php regex .htaccess url mod-rewrite