Apache 删除参数的htaccess规则
努力想出一个.htaccess规则来删除其中的参数。 基本上我想要 改写 因此,/page/competition.html中的任何内容都会被重写。Apache 删除参数的htaccess规则,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,努力想出一个.htaccess规则来删除其中的参数。 基本上我想要 改写 因此,/page/competition.html中的任何内容都会被重写。 谢谢你的帮助。提前感谢您是否只想在特定页面上使用此功能?还是更一般的做法 RewriteRule ^page/competition.html?(.+)$ /page/competition.html [L,NC] 这将是实现它的最简单的形式,但只适用于确切的文件名。对于更一般的方法,您需要添加更多的占位符。作为一般规则,您应该能够使用以下内
谢谢你的帮助。提前感谢您是否只想在特定页面上使用此功能?还是更一般的做法
RewriteRule ^page/competition.html?(.+)$ /page/competition.html [L,NC]
这将是实现它的最简单的形式,但只适用于确切的文件名。对于更一般的方法,您需要添加更多的占位符。作为一般规则,您应该能够使用以下内容:
RewriteRule ^(.*)$ $1? [END,QSA]
此规则中的键是后面的问号,它不会出现在输出URL中
重写规则^(.*)$$1?[结束,QSA]满足此规则,新url为
请在以下位置尝试:
RewriteRule ^(.*)$ $1? [END,QSA]
在您的问题中,您声明希望将长URI重写为短URI。不幸的是,这还不是很清楚。假设您希望使用重定向删除查询字符串,则可以使用以下方法:
RewriteRule ^(.*)$ $1? [END,QSA]
RewriteCond%{QUERY\u STRING}^utm\u medium=email&utm\u活动=([^&]+)&utm\u源=([^&]+)&utm\u术语=([^&]+)$
重写规则^%{REQUEST_URI}?[R=302,L]
这是一个通用条件和规则,将检查查询字符串中的任何utm
信息。如果存在,则去掉查询字符串
如果您只希望对page/competition.html
执行此操作,请将规则更改为:
RewriteRule^(page/competition\.html)$/$1?[R=302,L]
如果您只想删除构成对page/competition.html
请求一部分的任何查询字符串,则可以使用此字符串而不是上述字符串:
RewriteCond%{QUERY\u STRING}^$
重写规则^(page/competition\.html)$/$1?[R=302,L]
这基本上告诉Apache检查查询字符串是否为空,如果不是,则将其全部删除
若要使重定向永久,请将
302
更改为301
请共享您尝试过的内容。不正确的-mod_rewrite
不会将查询字符串暴露给规则。此外,您的规则是向后的-OP希望查询字符串本质上是隐藏的,但仍然是请求的一部分。我可能弄错了,但问题中使用的“重写”一词将我引向了那个方向。