使用mod_rewrite删除参数

时间:2013-09-21 16:36:51

标签: regex apache .htaccess mod-rewrite

我想使用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), 并且我更新了解参数的顺序。它可能位于查询字符串的开头和结尾。

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

1 个答案:

答案 0 :(得分: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]