Redirection 302 sans slash de fin

Nouveau WRInaute
Bonjour

En testant les headers HTTP des pages de mon blog, je me suis aperçu que certaines renvoyaient 200 OK et d'autres 302 Redirection temporaire.
En fait, si on tape une URL avec un slash à la fin, le code est 200, et si on tape une URL sans le slash à la fin, le code est redirection 302 vers la page avec le slash.


Je prends l'exemple de mon blog :

URL n°1 : Ceci renvoie 200 OK :
Code:
http://blogdethee.free.fr/2009/08/le-point-sur-lurl-rewriting/

URL n°2 : Et ceci renvoie 302 Redirection temporaire vers la première URL (celle avec le slash) :
Code:
http://blogdethee.free.fr/2009/08/le-point-sur-lurl-rewriting

L'URL n°2 renvoie donc à l'URL n°1 par une redirection 302...

Ma question : comment changer le code 302 en code 301 sachant que je suis chez Free ??

Une bonne idée serait d'utiliser une Rewrite rule, mais c'est impossible puisque le mod_rewrite est désactivé chez mon bien-aimé hébergeur... :? Quelqu'un aurait-il une solution ?
 
WRInaute discret
Je me demande si ce n'est pas en rapport avec le fonctionnement d'une requête HTTP.

Quand tu demandes l'URL d'un répertoire, c'est-à-dire terminée par / le serveur cherche alors dans ce répertoire un fichier index.html ou default.html et le renvoie à ton navigateur.
Alors que quand tu demandes l'URL sans terminer par / tu demanderais une page sans indiquer l'extension, extension que le serveur ajoute par défaut et livre la page.

Quelqu'un peut-il confirmer ceci ?
 
Nouveau WRInaute
Merci pour cette réponse, je n'avais pas pensé à cela. :wink: Et oui si quelqu'un pouvait confirmer...

Toutefois, je précise que ma méthode d'URL Rewriting se base sur l'erreur 404, bref, je suis obligé de modifier le header de toutes mes pages en 200.

Autre remarque : si je teste chez WRI avec une URL quelconque...

Cela renvoie 200 :
Code:
https://www.webrankinfo.com/dossiers/articles

Cela renvoie 301 (et accessoirement 200 mais c'est pareil pour moi)

Code:
https://www.webrankinfo.com/dossiers
Et c'est à cela que je voudrais arriver.


Malgré mes essais, je n'ai toujours pas pu changer ce code 302 en 301. Alors si quelqu'un passe par là avec une idée, je suis preneur. :)
 
Nouveau WRInaute
Hop, j'ai trouvé. Voici ma redirection en PHP dans mon fichier index.php (sous wordpress) :

Code:
if(substr($_SERVER['REQUEST_URI'], -1) != '/' && $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != 'blogdethee.free.fr/') : 
	header("HTTP/1.1 301 Moved Permanently", true, 301); Header("Status:301 Moved Permanently");
	header('Location: http://blogdethee.free.fr/'.$_SERVER['REQUEST_URI'].'/');
else :
	Header('HTTP/1.1 200 OK', true, 200); Header("Status:200 OK"); 
endif;

C'est un peu crade, mais ça fonctionne. Si quelqu'un poste une URL sans slash à la fin, on aura une jolie redirection 301 vers la bonne URL.
 
Nouveau WRInaute
Bonjour,

Ma configuration WP actuelle
- Version de WordPress : 4.2.2
- Version de PHP/MySQL : 5.3
- Thème utilisé :
- Extensions en place :
- Nom de l'hebergeur : 1&1
- Adresse du site : http://www.evenements-animations-artistiques.fr/

Problème(s) rencontré(s) :

Bonnjour j'ai dees adresses en doubles dans le webmaster Tools


/animation-magicien-mentaliste-bruille-lez-marchiennes-59490-nord-spectacle-close-up-prestations-magie-close-up/
/animation-magicien-mentaliste-bruille-lez-marchiennes-59490-nord-spectacle-close-up-prestations-magie-close-up

Je voudrais mettre en place une redirection de sans slash vers le slash


j'ai mis ça dans le fichier .htaccess

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>

# 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>


MAis je sais pas si ça corrige mon probléme ?
 
Nouveau WRInaute
Bonjour,

C'est fait pour le rel=canonical si tu vas sur mon site web : http://evenements-animations-artistiques.fr

Tout les canonical sont fait smile

Maintenant je voudrais faire la redirection d'une url sans slash vers une url avec slash à fin.

Soit en php soit en htacesss.

Exemple de redirection :

/animation-magicien-mentaliste-bruille-lez-marchiennes-59490-nord-spectacle-close-up-prestations-magie-close-up vers /animation-magicien-mentaliste-bruille-lez-marchiennes-59490-nord-spectacle-close-up-prestations-magie-close-up/

Merci à toi
 
Discussions similaires
Haut