regex - 使用 mod_rewrite 删除参数

标签 regex apache .htaccess mod-rewrite

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

例子:
1) 用户输入网址:

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),
而且我更新知道参数的顺序。它可以放在查询字符串的开头和结尾。

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

最佳答案

这是一个棘手的问题,因为 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]

关于regex - 使用 mod_rewrite 删除参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18935020/

相关文章:

c# - 为什么正则表达式替换方法不起作用?

Python 替换整个单词,包括开头的特殊字符

java - Apache Camel - JUNIT 测试中端点上没有可用的消费者

javascript - 页面重定向脚本给了我一个重定向循环

python - 根据可用月份和标识符对可用性进行分类 - Python

javascript - js比较两个字符串

angular - Localhost 为我的 Angular 应用程序发送了无效响应

php - Windows 10 升级后,使用 XAMPP 的 Apache 意外关闭

wordpress - 从本地主机到rest api结果的认证CORS错误

apache - 使用 .htaccess 从浏览器缓存中排除目录