.htaccess url重写 - 我做错了什么?

时间:2015-11-10 15:48:23

标签: php regex .htaccess mod-rewrite

我正在进入.htaccess网址重写。我无法详细说明:

我在两个条件之间改变

RewriteRule ^(.*)$ index.php?action=$1

RewriteRule ^(.*)/([0-9]+)/?$ index.php?action=$1&product_id=$2

在相同的样本网址 http://www.my-domain.cz/products/5

上使用

在我的PHP脚本中,我打电话给echo var_dump($_GET),以便在重写后查看其中的内容。

我得到的第一条规则:array(1) { ["action"]=> string(9) "index.php" }

我得到的第二条规则:array(2) { ["action"]=> string(8) "products" ["product_id"]=> string(1) "5" }

第一条规则有什么问题,它只显示" index.php" (并且不管给定的URL)。我相信正则表达式中的圆括号应该在第一次斜杠之后取出所有内容(" products / 5")并将其填入$ _GET [" action"]字段,这样我就可以使用稍后在PHP脚本中。为什么没有发生?在第二条规则中有什么不同,它在这里按预期工作?

顺便说一下:第一条规则取自一篇关于"好网址的文章"并且应该做我写的。但显然,它没有。

0 个答案:

没有答案