Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/11/2011, 14h57   #1
Membre chevronné
 
Avatar de Herode
 
Développeur Web
Inscription : mars 2005
Messages : 771
Détails du profil
Informations personnelles :
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2005
Messages : 771
Points : 790
Points : 790
Par défaut Redirections 301 : conditions d'utilisation

Bonjour à tous,

Un doute - dû à mon ignorance - me ronge et j'ai besoin de quelques éclaircissements.

Soit un site sur lequel je place dans le .htaccess les règles suivantes :

Code :
1
2
3
4
RewriteRule   ^(.*)/listes/nom-moche-8.html$ http://www.monsite.fr/listes/nom-referencable-8.html [L,R=301]

RewriteRule   ^listes/([a-z0-9\-]+)-([0-9]+)\.html$ liste.php?cat_id=$2& [QSA,L]
La seconde règle a pour effet que les urls de type /liste/cequejeveux-8.html aboutissent toutes à afficher la page de la catégorie d'id 8.

La première devrait rediriger http://monsite.com/listes/nom-moche-8.html vers http://monsite.com/listes/nom-referencable-8.html. Elle sert pour le référencement.

Là où j'ai un doute, c'est qu'une fois ces règles en place dans le htaccess, si je tape http://monsite.com/listes/nom-moche-8.html dans la barre de navigation de mon navigateur, cette url n'est pas remplacée par la bonne. Est-ce normal et l'ordre des règles dans le htaccess garantit-il que les moteurs de recherche vont bien traiter la redirection, ou ai-je loupé quelque chose ?
Herode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h06   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 295
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 295
Points : 8 575
Points : 8 575
C'est normal : c'est parce que la première règle n'est jamais activée ! En fait, dans un .htaccess, les URL analysées ne commencent jamais par / : quand tu demandes http://monsite.com/listes/nom-moche-8.html, Apache va vérifier le chemin listes/nom-moche-8.html sans / devant. C'est pour cela d'ailleurs que la seconde règle fonctionne sur cette URL. Le masque de ta première règle commence par ^(.*)/listes ce qui fait que, placée dans un .htaccess, elle ne sera activée que pour les URL du style http://monsite.com/quelquechose/listes/nom-moche-8.html.

Pour faire ce que tu veux, l'ordre de tes règles est le bon, il faut juste modifier le masque de la première règle. Par exemple : ^listes/nom-moche-8.html$ (comme la seconde règle) ou encore ^(.*)listes/nom-moche-8.html$ (mais ce format fera que l'URL qui n'existe pas http://monsite.com/sdfsdfdlistes/nom-moche-8.html sera redirigée).
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/11/2011, 10h56   #3
Membre chevronné
 
Avatar de Herode
 
Développeur Web
Inscription : mars 2005
Messages : 771
Détails du profil
Informations personnelles :
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2005
Messages : 771
Points : 790
Points : 790
OK ! Bien vu, ça marche beaucoup mieux à présent.

Et grand merci pour ces explications, je comprends mieux les mécanismes à présent !
Herode est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h39.


 
 
 
 
Partenaires

Hébergement Web