Removing GET parameter in .htaccess

.htaccess, apache, joomla1.5, mod-rewrite, regex

Solution

Use this rule:

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

`?` at the end of `$1` will strip-off any existing query string.

Problem

I'm not able to remove one GET parameter wrongly added by one 404 SEF module. I want to remove "task=view" only if it appears alone and not with another parameter. So www.mysite.com/1.html?task=view should be redirected to www.mysite.com/1.html. While www.mysite.com?task=view&view=article should remain unchanged. No matter which RewriteRule I use, this paramater does not go. Looks like it is being generated from any environment variable when index.php is run. For example this does not work: ``` RewriteCond %{QUERY_STRING} ^task=view$ [NC] RewriteRule (.*)task=view.* $1 [R=301,L] ``` Here is my .htaccess file: ``` 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 ``` What is the way to handle this?

Original source