努力想出一个.htaccess规则来从中删除参数。 基本上我想htaccess规则删除参数
改写到
http://www.example.com/page/competition.html
所以,从一/page/compeition.html任何被改写。 感谢您的帮助。在此先感谢
努力想出一个.htaccess规则来从中删除参数。 基本上我想htaccess规则删除参数
改写到
http://www.example.com/page/competition.html
所以,从一/page/compeition.html任何被改写。 感谢您的帮助。在此先感谢
你想只为特定页面?或更多作为一般方法?
RewriteRule ^page/competition.html?(.+)$ /page/competition.html [L,NC]
这将是实现它的最简单的形式,但只适用于确切的文件名。对于更一般的方法,您需要添加更多的占位符。
不正确 - 'mod_rewrite'不会将查询字符串公开给规则。此外,您的规则是倒退 - OP希望查询字符串基本上被隐藏,但仍然是请求的一部分。我可能会误解,但在问题中使用* rewrite *这个词指向那个方向。 –
作为一般规则,你应该能够使用以下命令:
RewriteRule ^(.*)$ $1? [END,QSA]
在此规则的关键是将不出现在输出URL尾随问号。
RewriteRule ^(。*)$ $ 1? [结束,QSA这个规则被满足,则新URL http://www.example.com/page/competition.html
尝试一下下面的例子:
在你的问题,你的国家,你想长期URI 将改写为较短的一个。不幸的是,这不是很清楚。假设你想简单地删除使用重定向查询字符串,可以使用以下命令:
RewriteCond %{QUERY_STRING} ^utm_medium=email&utm_campaign=([^&]+)&utm_source=([^&]+)&utm_term=([^&]+)$
RewriteRule^%{REQUEST_URI}? [R=302,L]
这是一个广义的条件和规则,将检查查询字符串中的任何utm
信息。如果存在,则删除查询字符串。
如果你希望只为page/competition.html
做到这一点,那么改变规则是:
RewriteRule ^(page/competition\.html)$ /$1? [R=302,L]
如果你想简单地删除任何查询字符串形成以page/competition.html
请求的一部分,那么你可以使用这个代替上述:
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(page/competition\.html)$ /$1? [R=302,L]
这基本上告诉Apache来检查查询字符串不为空,并且如果不是的话,完全剥离出来。
要使重定向永久,请将302
更改为301
。
请分享您的尝试。 –