琐碎的动态mod_rewrite

时间:2011-04-28 05:34:19

标签: regex mod-rewrite dynamic

是的,这很简单,但我可以让正则表达式工作吗?显然不是。

我需要转

http://example.com/search.php?widget_id=X4234-000 

进入

http://example.com/show.php?noddy_id=X4234-000

我试过了,

RewriteRule  search\.php\?widget_id=(.+?)$ show.php?noddy_id=%1 

以及

RewriteRule  search\.php\?widget_id=(.+?)$ show.php?noddy_id=$1 

(给Fells博士小费!)

但没有成功。有人指点吗?

2 个答案:

答案 0 :(得分:2)

您无法将查询字符串与RewriteRule匹配。为此,请使用RewriteCond指令:

RewriteCond %{QUERY_STRING} widget_id=(.*)$ 
RewriteRule  search\.php show.php?noddy_id=%1 [L]

(BTW,%x用于重写conds中的组匹配,重写规则中为$ 1)

如果在要保留的QueryString中有其他变量,最终可以将QSA添加到标志中。

答案 1 :(得分:0)

确实很简单! %1应为1美元