Rediriger une page

Bonjour,
J'aimerais rediriger les pages qui ont ce lien :

Code:
https://www.website.com/wp-signup.php?new=website.com&step=plan&cs=xxxxxxxxxxx

Où xxxxxxxxxxx est une variable (ex : 5e887da84e1987.21022444)

Vers cette adresse :

Code:
https://www.website.com/nouvelle-page

Merci.
 
Tout dépend de la méthode ; pour une implémentation dans le .htaccess :
Code:
RewriteCond %{REQUEST_URI}  ^/wp-signup\.php$
RewriteCond %{QUERY_STRING} ^new=website.com&step=plan&cs=.+$
RewriteRule ^(.*)$ https://www.website.com/nouvelle-page [L]
(quelques infos en plus)
C'est éventuellement à adapter, notamment pour être plus précis sur la seconde RewriteCond, suivant les formes que peut avoir la "variable" et sur le code de redirection, le cas échéant, sur la RewrtieRule.

Après, je ne suis pas fan des .htaccess à rallonge. Pour les cas spécifiques, je préfère gérer ça en php, mais ça dépend des besoins et de la structure du site.
 
Il faut rajouter une redirection à la fin de la dernière ligne [R=301,L] ou [R=302,L], suivant le code que l'on souhaite envoyer
 
Comme ceci ?

Code:
RewriteCond %{REQUEST_URI}  ^/wp-signup\.php$
RewriteCond %{QUERY_STRING} ^new=website.com&step=plan&cs=.+$
RewriteRule ^(.*)$ https://www.website.com/nouvelle-page [L] [R=302,L]
 
Non comme ça :


Code:
RewriteCond %{REQUEST_URI}  ^/wp-signup\.php$
RewriteCond %{QUERY_STRING} ^new=website.com&step=plan&cs=.+$
RewriteRule ^(.*)$ https://www.website.com/nouvelle-page [R=301,L]
 
Je présuppose que mod_rewrite est bien activé ?

Et s'il y a d'autres RewriteRule auparavant qu'elles n'interfèrent pas avec celle-ci.
 
Oui @emualliug, voici mon code :

Code:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

RewriteCond %{REQUEST_URI}  ^/wp-signup\.php$
RewriteCond %{QUERY_STRING} ^new=website.com&step=plan&cs=.+$
RewriteRule ^(.*)$ https://www.website.com/nouvelle-page [R=301,L]

J'ai juste masqué mon domaine en le modifiant par website
 
Code:
RewriteRule ^(.*\.php)$ $1 [L]

C'est là qu'est le soucis.
Ton URL "https://www.website.com/wp-signup.php?new=website.com&step=plan&cs=5e8dd3d23a5796.03693131" répond à cette règle qui a un drapeau [L]

Donc inverse ton traitement et ça devrait passer.

Pour être plus clair :
Code:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_URI}  ^/wp-signup\.php$
RewriteCond %{QUERY_STRING} ^new=website.com&step=plan&cs=.+$
RewriteRule ^(.*)$ https://www.website.com/nouvelle-page [R=301,L]https://www.website.com/wp-signup.php?new=website.com&step=plan&cs=5e8dd3d23a5796.03693131


RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
 
Juste une dernière chose, la redirection fonctionne très bien, mais j'ai le texte ( ?new=website.com&step=plan&cs=xxxxxxx ) qui vient se coller à la fin du lien comme ceci :
Code:
https://www.website.com/nouvelle-page
?new=website.com&step=plan&cs=xxxxxxx
Sinon, au pire, je le laisse comme ça.
 
Ajouter le drapeau QSD (pour query string discard). Et comme je me suis planté dans mon premier copier-coller, en pénitence, je te remets le tout :
Code:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_URI}  ^/wp-signup\.php$
RewriteCond %{QUERY_STRING} ^new=website.com&step=plan&cs=.+$
RewriteRule ^(.*)$ https://www.website.com/nouvelle-page [R=301,L,QSD]


RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
 
Merci,
Malheureusement le texte ( ?new=website.com&step=plan&cs=5e8cca7feca6d0.46029125 ) est toujours dans le lien !
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut