我想使用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), 并且我更新了解参数的顺序。它可能位于查询字符串的开头和结尾。
我很感激任何帮助,因为我花了很多时间在网上搜索,却找不到任何可行的解决方案。
答案 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]