使用可选参数重写URL

时间:2017-01-12 20:36:33

标签: apache .htaccess mod-rewrite parameters optional

我有这个网址 category/product/index.php?itemid=WdS7Dk3L&title=new-product

我想重写它,第二个参数是可选的 category/product/WdS7Dk3L/new-product

category/product/WdS7Dk3L/

我的htaccess被放入了 category/product/.htaccess

我从this post得到了这个,但我无法让它发挥作用。
RewriteRule ^category/product/([^/]*)/?(.*)$ index.php?itemid=$1&title=$2

请帮我指出正确的方向。 感谢。

1 个答案:

答案 0 :(得分:1)

.htaccess文件重写匹配是相对于.htaccess文件的位置,所以请使用:

RewriteRule ^([^/]+)(?:/(.*))?$ index.php?itemid=$1&title=$2

您只将第二个参数指定为可选,所以我将第一个*(零或更多)更改为+(一个或多个,就像在那里一样)并删除了?斜线上的(可选),因为它出现在你的两个例子中。

<强>更新

当没有提供第二个参数时,匹配被更新为在第一个参数可选后斜杠。