Redirection sous worpress sans perte de référencement

WRInaute discret
Bonjour,

Lors de la mise en place de mon site sous WordPress j'avais choisi le format d'Url suivant:
http://www.mon site. com/titredelapage.php

Je voudrais aujourd'hui rediriger l'ensemble de mes pages (une vingtaine) vers le format d'URL suivant:
http://www.mon site. com/titredelapage/

Quel est le code de redirection à mettre en place dans mon fichier .htaccess afin de limiter au maximum les conséquences négatives sur mon référencement?
(Je ne veux pas faire cette redirection en passant par un plugin)

Merci beaucoup.
 
WRInaute accro
C'est très courant comme redirection, qu'est-ce que tu as forcément testé et qui ne fonctionne pas ?
 
WRInaute discret
spout a dit:
C'est très courant comme redirection, qu'est-ce que tu as forcément testé et qui ne fonctionne pas ?
Salut Merci pour ta réponse.

En fait je souhaite tout simplement rediger les premières URLs vers les deuxièmes sans perdre mon référencement.

Le .php a la fin de mes urls pose problème avec certains plugins: Plugin Amp, partage sur Facebook.

Je souhaite donc mettre un code dans mon .ht access
pour avoir des urls standards wordpress /titredelapage/
 
WRInaute discret
spout a dit:
Oui mais t'as déjà testé quoi comme code dans le .htaccess qui ne fonctionnais pas ?

Je n'en ai pas encore testé. Je souhaite justement qu'on m'en indique un ayant le moins de conséquence possible sur le référencement des articles concernés.
Merci
 
Membre Honoré
Bonjour,

Vous pouvez faire un code avec des redirections 301 (301 : redirection permanente).

N'hésitez pas à vous présenter au forum : ici et entre deux messages présenter vos avis aussi sur les sujets : ici.

Cordialement.
 
WRInaute discret
Merci beaucoup. Cependant je voudrais être sûr du code 301 à mettre dans le fichier .htaccess
Pouvez-vous me l'indiquer avec mes urls? Merci

Oui je visite régulièrement WRI cepedandant je donne peu souvent mon avis car je suis un débutant mais je vais essayer d'aider avec mon peu de connaissances...
 
Membre Honoré
Bonjour,
hamoudi a dit:
Merci beaucoup. Cependant je voudrais être sûr du code 301 à mettre dans le fichier .htaccess
Vous avez des exemples avec le sujet des pratiques du htaccess.
hamoudi a dit:
Oui je visite régulièrement WRI cepedandant je donne peu souvent mon avis car je suis un débutant mais je vais essayer d'aider avec mon peu de connaissances...
Il manque beaucoup d'avis des simples utilisateurs des sites, pas besoin de connaissances. :)

Cordialement.
 
WRInaute accro
Sauf qu'avec cette syntaxe, il y a une ligne par url existante sur le site. On a vu plus optimisé.

Pas testé mais quelque chose comme :

Code:
RewriteEngine on
RewriteRule ^/(.*).php$ http://www.example.com/$1/? [L,R=301]
 
WRInaute accro
Bonsoir hamoudi

1- si ta redirection fonctionne, elle est "ok" pour tout le monde, y compris Google
2- as tu remarqué que tes messages sont systématiquement corrigés pour enlever la citation intégrale que tu fais du message auquel tu réponds ? C'est désagréable pour les gens qui lisent le sujet, qui voient des redites
 
WRInaute discret
Code:
RewriteEngine on
RewriteRule ^/(.*).php$ http://www.example.com/$1/? [L,R=301]

Dans mon blog WordPress J'ai 150 urls a rediriger de /titre-article.php à /titre-article/ l'inclusion du code ci-dessus suffit il à rediriger l'ensemble de mes pages?

Ou Faut-il indiquer l'URL de chacune des pages à rediriger? Merci
 
WRInaute accro
Tu as bien vérifié que tu l as mis au bon endroit ? Si tu as déjà un .htaccess, il est possible que tu ais déjà la ligne rewriteengine on. Intègre la ligne

Code:
RewriteRule ^/(.*).php$ http://www.example.com/$1/? [L,R=301]

Juste en-dessous.
 
WRInaute discret
Voici l'endroit où je l'ai mis dans mon fichier htacces:
Code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} on [OR]
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} https
RewriteRule .* - [E=WPR_SSL:-https]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=WPR_ENC:_gzip]
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP:Cookie} !(wordpress_logged_in_|wp-postpass_|wptouch_switch_toggle|comment_author_|comment_author_email_) [NC]
RewriteCond %{HTTP_USER_AGENT} !^(facebookexternalhit).* [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/wp-rocket/%{HTTP_HOST}%{REQUEST_URI}/index%{ENV:WPR_SSL}.html%{ENV:WPR_ENC}" -f
RewriteRule .* "/wp-content/cache/wp-rocket/%{HTTP_HOST}%{REQUEST_URI}/index%{ENV:WPR_SSL}.html%{ENV:WPR_ENC}" [L]
ICI: RewriteRule ^/(.*).php$ http://www.textes-voeux.com/$1/? [L,R=301]
</IfModule>
# END WP Rocket

Dans l'admin de Wordpress j'ai ensuite changer le format de mes permaliens en choisissant
Nom du site: http://www.textes-voeux. com/exemple-article/

Mais quand j'accéde à un de mes articles avec l'ancien format de permalien .php j'ai une page d'erreur 404...
 
WRInaute discret
Je viens de mettre le code juste après RewriteEngine On
Bien sûr le mot "Ici" n'est pas présent dans mon fichier.

Ca ne marche toujours pas... j'ai tenté de vider le cache car j'utilise WPRocket mais ça ne change rien...
 
WRInaute discret
J'ai expérimenté de mettre une redirection pour un seul de mes articles avec le code 301 suivant:

Redirect 301 /titredelarticle.php http://www.example.com/titredelarticle/

Et ça marche! Quel que soit l'endroit ou je place ce code dans mon fichier htaccess...

J'ai exactement 165 urls à rediriger de la sorte...
Pensez vous que je puisse mettre 165 fois ce code dans mon fichier htaccess ou cela va t-il alourdir mon site?
 
WRInaute discret
UsagiYojimbo a dit:
La Rewriterule te permettrait de t'affranchir de ça. Il faut creuser un peu autour de la règle

Oui certainement mais je ne suis pas très doué en la matière.
J'ai fait des recherches sur Google sans succès.
Le code que tu m'as proposé semble être pas loin du résultat mais il doit avoir une petite erreur que je n'arrive pas à identifier... :roll:
 
WRInaute discret
UsagiYojimbo a dit:

Merci beaucoup! Grace à ton aide je viens de mettre en place le code suivant qui fonctionne:
Code:
RewriteCond %{THE_REQUEST} \ /(.+)\.php
RewriteRule ^ /%1/ [L,R=301]

Cependant, j'ai la poisse!!!, ce code génère un problème, je ne peux plus me connecter à l'admin de mon site WordPress.
Sur internet Explorer la page http://www.example.com/wp-login/ s'affiche bizarrement et impossible de me connecter.
Sur Chrome la page de login s'affiche normalement mais impossible de se connecter...
 
Discussions similaires
Haut