3

我想使用 mod_rewrite 从 URL 中删除特定的查询参数。

示例: 1) 用户输入 URL:

http://localhost/intra/page.htm?var1=123&var2=456&var3=789

2) mod_rewrite 删除“var2=456”

3) 新网址:

http://localhost/intra/page.htm?var1=123&var3=789

我的问题是,我只知道参数名称(var2),而不知道值(456),而且我知道参数的顺序。它可能位于查询字符串的开头和结尾。

我会很感激任何帮助,因为我花了很多时间在网上搜索,但没有找到任何可行的解决方案。

4

1 回答 1

12

这是一个棘手的问题,因为var2=anything它确实可以出现在查询字符串的任何地方。

此代码应该适合您:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^(.+?&|)var2=[^&]*(?:&(.*)|)$ [NC]
RewriteRule ^ %{REQUEST_URI}?%1%2 [R=301,L]
于 2013-09-21T16:59:02.503 回答