带问号的基本mod_rewrite操作

时间:2012-10-03 15:19:02

标签: apache mod-rewrite

我想重写一个地址:

http://mysite.com/page?att=XXXXX 至: http://mysite.com/page.php?att=XXXXX

我尝试过以下代码,但对我不起作用。我想问号就是问题:

RewriteRule ^page?att=([A-Za-z0-9-_]+)/?$ page.php?att=$1 [L]

2 个答案:

答案 0 :(得分:0)

您无法匹配RwriteRule中的查询字符串,但在这种情况下,您根本不会重写查询字符串,只需要重写URI(page - > page.php),查询字符串将自动附加:

RewriteRule ^/?page$ page.php [L]

答案 1 :(得分:0)

我会包含一个R指令来显式触发重定向,而QSA只是保留重定向URL中的整个查询字符串。

最后,根据上下文,URI可能以斜杠开头。如果是这样,您的规则 - 它要求的URI以斜杠开头 - 将永远不会匹配。添加/?在开头将匹配带有前导斜杠的URI和不带。

RewriteRule ^/?page/?$ page.php [R,QSA,L]

给这一点。