在.htaccess中删除GET参数

我无法删除由一个404 SEF模块错误添加的一个GET参数。

我想删除“任务=查看”只有当它出现单独而不是另一个参数。

所以

www.mysite.com/1.html?task=view应redirect到www.mysite.com/1.html

www.mysite.com?task=view&view=article应该保持不变。

不pipe我使用哪个RewriteRule,这个参数不会去。 看起来像是在运行index.php时从任何环境variables生成的。

例如,这不起作用:

RewriteCond %{QUERY_STRING} ^task=view$ [NC] RewriteRule (.*)task=view.* $1 [R=301,L] 

这是我的.htaccess文件:

 Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_URI} (/|.php|.html|.htm|.feed|.pdf|.raw|/[^.]*)$ [NC] RewriteRule (.*) index.php RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] Options -Indexes 

处理这个的方法是什么?

使用这个规则:

 RewriteCond %{QUERY_STRING} ^task=view$ [NC] RewriteRule ^(.*)$ $1? [R=301,L] 

? $1的结尾将剥离任何现有的查询字符串。