使用mod_rewrite去除某些GET变量

时间:2009-10-01 04:59:17

标签: php .htaccess mod-rewrite variables get

我是一名mod_rewrite noob,我正在努力找出一些应该简单的东西。我要做的是从使用GET表单后显示的URL中删除不需要的变量。换句话说,我试图改变这个:

stats.php?gender=W&team_id=88&btnGet=Get+Stats

到此:

stats.php?team_id=88

请帮助我!

编辑:我所要做的就是删除“性别”和提交按钮中表单中的“名称”属性。感谢太多的PHP和Gumbo解决方案!当然,有一种更简单的方法来实现这一目标。 :)

2 个答案:

答案 0 :(得分:2)

这甚至会实现什么?在用户的地址栏中,URL仍然会显示完全相同,并且PHP比mod_rewrite更能忽略abitrary $_GET变量。

尝试从提交按钮中删除“name="btnGet"”属性,同时删除“gender”字段。您还可以使用Javascript动态删除不需要的表单元素。

答案 1 :(得分:1)

RewriteCond %{QUERY_STRING} team_id=([0-9]+)
RewriteCond %{QUERY_STRING} btnGet
RewriteRule stats.php stats.php?team_id=%1 [R]

您无法将查询字符串与RewriteRule匹配 - 您必须使用RewriteCond。

正如“太多”所说,除非您重新加载页面,否则进行重写不会对用户造成任何明显的更改。所以你需要[R]来强制重定向而不是简单的重写,这可能不适用于程序的逻辑。