Les chemins URL doivent-ils être sensibles à la casse?

11

Les URL de mon site Web sont actuellement insensibles à la casse. Par exemple, les deux liens suivants affichent exactement la même page:

  • http://example.com/about
  • http://example.com/About

Cependant, en jetant un œil au site wordpress.org, j'ai remarqué que les URL sont sensibles à la casse. Par exemple, le deuxième lien ci-dessous est une page d'erreur 404:

  • http://wordpress.org/about
  • http://wordpress.org/About

Mes pensées sont de rendre les URL de mon site Web sensibles à la casse. Mis à part le problème évident d'éviter le contenu en double, quels sont les avantages et les inconvénients d'avoir des URL sensibles à la casse?

Mettre à jour

Google semble appliquer une politique d'URL sensible à la casse sur ses propres URL. Par exemple, le deuxième lien ci-dessous est un 404:

  • http://google.com/doodles
  • http://google.com/Doodles

Update 2

Merci pour vos réponses. J'ai décidé de suivre les conseils mentionnés dans la réponse acceptée et d'implémenter des redirections 301 si nécessaire. Puisque je travaille avec WordPress, ma solution de code est la suivante (au cas où quelqu'un serait intéressé):

function force_lowercase_urls() {

    if ( is_admin() )
        return;

    if ( preg_match( '/[A-Z]/', $_SERVER['REQUEST_URI'] ) ) {

        wp_redirect( strtolower( $_SERVER['REQUEST_URI'] ), 301 );
        exit();
    }

}
add_action( 'init', 'force_lowercase_urls' );
Henrywright
la source
1
But wouldn't that result in duplicate content? – henrywrightVous n'avez jamais à vous soucier des liens en double si votre site utilise correctement les liens canoniques et vous pouvez avoir accès à 1 page d'un million de façons et ne jamais être affecté pour le contenu en double.
Simon Hayter
@bybe Si vous avez accès à une page de plusieurs façons, Googlebot ne pourra pas bien explorer votre site. Avoir accès à une page une poignée de façons ne risque pas de mal.
Stephen Ostermiller

Réponses:

6

Par défaut, deux des systèmes de fichiers du système d'exploitation les plus utilisés pour servir le contenu Web ont des paramètres très différents pour la sensibilité à la casse des URL. La sensibilité à la casse de vos URL est probablement une fonction que vous utilisez:

  • Microsoft IIS fonctionnant sous Windows - URL insensibles à la casse - affiche le même contenu indépendamment de la mise en majuscule.
  • Apache HTTPD Server fonctionnant sous Linux - URL sensibles à la casse - donne une erreur 404 introuvable pour une capitalisation incorrecte.

À mon avis, aucune des valeurs par défaut n'est idéale:

  • Afficher le même contenu indépendamment de la capitalisation rend l'exploration de votre site Web plus difficile. Les moteurs de recherche considèrent le même contenu sur plusieurs URL comme un contenu en double.
  • L'affichage de pages d'erreur pour une capitalisation incorrecte n'est pas convivial. Les utilisateurs ne sont généralement pas conscients de la capitalisation lorsqu'ils saisissent.

La solution idéale serait d'afficher la page uniquement lorsque l'URL est correctement mise en majuscule. Pour une capitalisation incorrecte, l'utilisateur doit être 301 redirigé vers la capitalisation préférée. Il y a plusieurs façons d'y parvenir:

Stephen Ostermiller
la source
1
Je pense que c'est un artefact de DOS et Windows s'écartant de la norme précédente de respect de la casse que nous avons dans les environnements Unix.
Dim
1
La sensibilité à la casse d'Apache pour les requêtes mappées au système de fichiers dépend du système de fichiers sous-jacent, et non d'Apache lui-même. Si vous exécutez Apache sur Windows, la demande /iNdEx.HtMlou /InDeX.hTmlle retourne /index.html(à condition qu'il s'agisse d' /index.htmlun fichier physique sur le système de fichiers).
MrWhite
1
En fait, cela semble être le même pour IIS .
MrWhite
1
Eh bien, IIS s'exécute toujours sur Windows (AFAIK), donc les demandes de système de fichiers seront toujours insensibles à la casse. Cependant, de nombreux sites acheminent (réécrivent) les URL via une sorte de contrôleur frontal - dans ce cas, la demande ne correspond probablement pas à un fichier physique sur le système de fichiers et donc l'URL est probablement sensible à la casse (sauf si l'application le fait spécifiquement) -insensible) - qui est fondamentalement le même que Apache (lors de l'exécution sur Windows). (?)
MrWhite
2
En fait, je suis tombé par ici en recherchant la question récente / occupée " Pourquoi les URL sont-elles sensibles à la casse? ". Il semble que des phrases comme «IIS ne respecte pas la casse» (mentionnées plusieurs fois dans cet autre fil) sont si répandues que la croyance commune semble être que les URL sur IIS sont toujours insensibles à la casse - du moins c'est l'impression que j'obtenais - qui ne semble pas du tout être le cas.
MrWhite
4

Voici la position de Google à partir d'une session de chat en direct archivée (le lien est maintenant mort):

* La capitalisation incohérente des URL entraîne-t-elle des problèmes de contenu en double et une dilution du classement des pages? Par exemple, www.site.com/abc vs www.site.com/Abc. Sur les hôtes Windows, ce sont la même page, mais ce sont des pages différentes sur les hôtes Unix.

JohnMu: Bonjour John, sur la base des normes existantes, les URL sont sensibles à la casse, donc oui, elles seraient considérées comme des URL distinctes. Étant donné que le contenu des URL est le même, nous le reconnaissons généralement et n'en conservons qu'un. Cependant, nous vous recommandons d'essayer de conserver tous les liens vers une seule version de l'URL. Gardez à l'esprit que cela s'applique également aux fichiers robots.txt. *

L'équipe IE recommande de choisir une convention de casse de fichier et de la respecter strictement car elle peut améliorer les performances.

mvark
la source
-2

La RFC 3986 6.2.2.1 définit les URI comme insensibles à la casse, donc ce n'est pas une bonne idée de les rendre sensibles à la casse comme wordpress.org le fait.

Andreas Krischer
la source
Mais cela n'entraînerait-il pas un contenu en double?
En fait non, car les moteurs de recherche devraient également ne pas respecter la casse.
Je suppose que la question est maintenant de savoir si les moteurs de recherche considèrent les URL majuscules et minuscules comme équivalentes? Prenons l'exemple de Google: essayez google.com/Doodles et google.com/doodles
10
Ce RFC ne traite que le cas de trois parties de l'URL. 1 - Le protocole ( http://) - insensible à la casse, normalisé en minuscules. 2 - Le nom d'hôte ( example.com) - insensible à la casse, normalisé en minuscules. 3. Pourcentage de caractères codés ( %3F) - insensible à la casse, normalisé en majuscules. Le reste de l'URL est généralement sensible à la casse
Stephen Ostermiller