URL重写问题

时间:2011-02-04 06:38:35

标签: apache .htaccess mod-rewrite

我使用下面的代码重写URL:

RewriteEngine on    
RewriteRule ^buynow/(.*)$ Model/Public/BuyNow/buynow.php?str=$1&f=$2   [L]

但正如在这些行中,第二个参数"f"在这里不起作用。我在谷歌搜索但没有得到结果。请提出你的建议

由于

3 个答案:

答案 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的参数,因此您的预期参数永远不会到达。 请发布原始网址的示例,以便我们帮助您解决问题。