当添加?id = $ 1时,正则表达不会匹配基本URL

时间:2014-04-27 11:56:35

标签: regex mod-rewrite

我在使用正则表达式时遇到了一些麻烦。我一直试图从以下方面获得一个非常基本的网址:

..myDomain/ecommerceWebsite/products/index.php?id=101

为:

..myDomain/ecommerceWebsite/products/101

我写过这个,但它似乎不起作用:

RewriteEngine on
RewriteRule products/index.php?id=$1 ^products/([0-9]+)/?$ [L]

重新路由一直有效,直到我添加?id=$1部分,然后它似乎忽略了规则。有人可以告诉我这里我做错了吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这应该可以正常工作,并将ecommerceWebsite/products/index.php?id=101更改为ecommerceWebsite/products/101

RewriteEngine on
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /ecommerceWebsite/products/index\.php\?id=(.*)\ HTTP
RewriteRule ^ /ecommerceWebsite/products/%2\? [R=301,L]