为什么这个网址没有重写?简单

时间:2012-08-05 00:01:55

标签: apache mod-rewrite

以下是我正在尝试做的一个例子。

转过来:

http://example.com/products/

进入这个:

http://example.com/app.php?products

我还需要支持最后的查询,例如::

这样:

http://example.com/products/?foo=bar&boat=row

进入这个:

http://example.com/app.php?products&foo=bar&boat=row

到目前为止,这是我的重写:

RewriteRule ^([A-Za-z0-9]+)/?\??([A-Za-z0-9\+=&]+)?$ app.php?$1&$2 [L]

这适用于我的前两个示例,但第二个示例仅适用于像

这样的网址
http://example.com/products/foo=bar&boat=row

我需要能够在那里有那个问号,我认为\ ??在我的重写应该做,但它没有,并且instad返回404.我做错了什么?感谢。

1 个答案:

答案 0 :(得分:2)

可以使用QSA标志追加查询字符串,您无法与RewriteRule中的查询字符串进行匹配。试试这个:

RewriteRule ^([A-Za-z0-9]+)/?$ app.php?$1 [L,QSA]