我使用下面的代码重写URL:
RewriteEngine on
RewriteRule ^buynow/(.*)$ Model/Public/BuyNow/buynow.php?str=$1&f=$2 [L]
但正如在这些行中,第二个参数"f"
在这里不起作用。我在谷歌搜索但没有得到结果。请提出你的建议
由于
答案 0 :(得分:2)
您的正则表达式中只有一个组(由(
... )
分隔)。 $1
指的是此组中匹配的内容,$2
指的是第二组中匹配的内容,该内容不存在。由于没有第二组,$2
将始终评估为""
。
网址的哪一部分f
应该代表什么?
编辑:根据您的评论,规则看起来应该是这样的:
RewriteRule ^buynow[^/]*/(.*)/([^/]*)$ Model/Public/BuyNow/buynow.php?str=$1&f=$2 [L]
答案 1 :(得分:1)
您只捕获一个字符串,因此没有$2
对应于第二个捕获组。
答案 2 :(得分:0)
您编写的规则仅支持传递 1 参数,^ buynow / (。*) $是一个未分为2的参数,因此您的预期参数永远不会到达。 请发布原始网址的示例,以便我们帮助您解决问题。