Changement de script : redirection permanente dans le .htaccess

Cam88

WRInaute occasionnel
Bonsoir,

Je viens de finir en local la modification d'un de mes sites, je passe d'un site géré par prestashop à un blog wordpress.
J'ai retravaillé les pages et articles de l'ancienne version vers la nouvelle.
Je suis sur un mutualisé OVH avec le multi-domaine.

Ancienne url :
http://www.monsite.com/content/13-pageancienne

Nouvelle page :
http://www.monsite.com/nouvelle-page/

Au sujet des redirections, il me suffit d'indiquer dans le .htaccess :

Code:
RewriteEngine on
RewriteRule /content/13-pageancienne /nouvelle-page/

C'est comme ça que ça marche ?

Merci pour votre aide :)
 

Dewep

Nouveau WRInaute
Salut,

A peu près ouais. :)
Code:
RewriteEngine on
RewriteRule ^content/13-pageancienne$ /nouvelle-page/ [QSA,R=301]

Avec ça, il y a aussi une redirection 301.

@++
 

Cam88

WRInaute occasionnel
Bonjour,
Vous êtes sur du code ?

Voici mon fichier htaccess chez ovh en multidomaine:

Code:
SetEnv PHP_VER 5
Options +Indexes

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

RewriteRule ^pageancienne.html$ /nouvellepage/ [QSA,R=301]

Je viens de mettre la nouvelle version du site, et j'ai tapé pageancienne.html et je tombe sur une erreur 404

Une idée ?
Merci pour votre aide :)
 

Dewep

Nouveau WRInaute
Euh normal, c'est Wordpress qui intercepte avant je pense là.

Met plutôt ceci :
Code:
SetEnv PHP_VER 5
Options +Indexes

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^pageancienne.html$ /nouvellepage/ [QSA,R=301]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

</IfModule>

Au passage, autant utilisé PHP 5.4 ;)
Code:
SetEnv PHP_VER 5_4
 

Cam88

WRInaute occasionnel
Merci pour ton aide Dewep

La version que j'utilise :
Code:
RewriteRule ^anciennepage$ /nouvellepage/ [b][R=301,L][/b]

Le [R=301,L] (qui fonctionne) équivaut au [QSA,R=301] ? (qui ne semble pas fonctionner)

Merci pour votre aide :)
 

Dewep

Nouveau WRInaute
Non.
Ce sont des options que l'on ajoute à la réécriture d'URL.

R=301 signifie que l'on utilise une redirection 301 (= changement d'URL permanente, c'est pour le référencement, que Google puisse savoir quel URL il faut utiliser)
L signifie qu'il arrête la réécriture immédiatement et n'applique plus aucune règle.
QSA signifie quant à lui qu'il garde les paramètres URL. C'est à dire que si tu étais sur anciennepage?page=2 tu vas être redirigé vers nouvellepage?page=2 par exemple.

A toi maintenant d'ajouter ou retirer ces options (ou plutôt chapeaux) en fonction de tes besoins.
Fais attention par contre au BBCode Gras autour de ces options que tu as mis.
 

Discussions similaires

Haut