Redirection with parameters and multiple query

Viewed 56

I want to redirect this url https://www.mydomain.fr/mon-compte-membre/?ihcnewlevel=true&lid=7&urlr=https%3A%2F%2Fwww.mydomain.fr%2Fservices%2F

To `https://www.mydomain.fr/slug/

EDIT This is the edited code (still not working)

<IfModule mod_rewrite.c>
RewriteCond %{THE_REQUEST} /mon-compte-membre/ [NC]
RewriteCond %{QUERY_STRING} (^|&)ihcnewlevel=true(&|$) [NC]
RewriteCond %{QUERY_STRING} (^|&)lid=7(&|$) [NC]
RewriteCond %{QUERY_STRING} (^|&)urlr=https%3A%2F%2Fwww\.mydomain\.fr%2Fservices%2F [NC]
RewriteRule ^ /slug/ [R=302,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
1 Answers
  1. You must use ? in the target to strip off any previous query string
  2. Apache won't decode % characters in query string so you will have to match them literally

You may use:

RewriteCond %{THE_REQUEST} /mon-compte-membre/ [NC]
RewriteCond %{QUERY_STRING} (^|&)ihcnewlevel=true(&|$) [NC]
RewriteCond %{QUERY_STRING} (^|&)lid=7(&|$) [NC]
RewriteCond %{QUERY_STRING} (^|&)urlr=https%3A%2F%2Fwww\.mydomain\.fr%2Fservices%2F [NC]
RewriteRule ^ /slug/? [R=302,L]

Once you're satisfied with the result, replace 302 with 301.

Related