Rediriger une page

WRInaute impliqué
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.
 
WRInaute impliqué
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.
 
WRInaute impliqué
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
 
WRInaute impliqué
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]
 
WRInaute accro
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]
 
WRInaute impliqué
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.
 
WRInaute impliqué
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
 
WRInaute impliqué
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]
 
WRInaute impliqué
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.
 
WRInaute impliqué
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]
 
WRInaute impliqué
Merci,
Malheureusement le texte ( ?new=website.com&step=plan&cs=5e8cca7feca6d0.46029125 ) est toujours dans le lien !
 
Discussions similaires
Haut