我想从任何网址中删除特定的查询字符串,留下其他查询字符串,以及第一个与后续字符串(?对比&)的帐户。我只想删除以下网址参数:
运动 外部
考虑到这些网址参数可能存在于网址中的任何位置这一事实非常重要,因此剩下的参数可能需要翻转到"?"来自"&"。
以下是一些例子:
Original: www.domain.com/page.html?campaign=123
Modified: www.domain.com/page.html
Orig: www.domain.com/page2.html?campaign=123&flow=shop
Mod: www.domain.com/page2.html?flow=shop
Orig: www.domain.com/page6.html?flow=account&campaign=123&entry=1&external=google
Mod: www.domain.com/page6.html?flow=shop&entry=1
答案 0 :(得分:1)
您可以在DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(?:(.+?)&)?(?:external|campaign)=[^&]*$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(?:external|campaign)=[^&]*(?:&(.*))?$ [NC]
RewriteRule ^ %{REQUEST_URI}?%1 [L,NE,NC,R=302]
RewriteCond %{QUERY_STRING} ^(?:(.+?)&)?(?:external|campaign)=[^&]*(&.*)?$ [NC]
RewriteRule ^ %{REQUEST_URI}?%1%2 [L,NE,NC,R=302]