【发布时间】:2011-03-28 17:52:15
【问题描述】:
我有一个这样的网址:
我正在尝试从 URL IP=169%2E59%2E201%2E137 中的查询字符串中删除以下查询变量,同时保留字符串的其余部分。该变量是一个 IP 地址,每次可能是一个不同的 IP 地址,但始终是一个 IP。如果出于安全原因在查询字符串中找到 IP 地址,我使用的其中一个 CMS 系统将出错。不幸的是,我需要获取从支付网关发送的数据,并且网关无法关闭从它们发送的 IP 地址。如果我要捕获发送到我的 CMS 的数据,那么我需要使用 HTACCESS 删除或替换查询中的 IP。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET\ /.*\ HTTP/ [NC]
RewriteCond %{QUERY_STRING} IP= [NC]
RewriteCond %{QUERY_STRING} (.*)(IP=[0-9]{1,3}%252E[0-9]{1,3}%252E[0-9]{1,3}%252E[0-9]{1,3})(.*) [NC]
RewriteRule .* %{REQUEST_URI}?%1%3 [R=301,L]
所以,我开始写这样的东西,但老实说,我很讨厌 mod_rewrite 和正则表达式。
我不在乎它是否设置为 IP=123,或者只是被删除,但它不能被格式化为 IP。如果您能提供帮助,请告诉我!
【问题讨论】:
标签: regex .htaccess mod-rewrite ip-address