¿Las rutas URL deben ser sensibles a mayúsculas y minúsculas?

11

Las URL de mi sitio web no distinguen entre mayúsculas y minúsculas. Por ejemplo, los dos enlaces siguientes muestran exactamente la misma página:

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

Sin embargo, al echar un vistazo al sitio web wordpress.org, noté que las URL distinguen entre mayúsculas y minúsculas. Por ejemplo, el segundo enlace a continuación es una página de error 404:

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

Mis pensamientos son hacer que las URL de mi sitio web distingan entre mayúsculas y minúsculas. Además del problema obvio de evitar el contenido duplicado, ¿cuáles son las ventajas y desventajas de tener URL sensibles a mayúsculas y minúsculas?

Actualizar

Google parece operar una política de URL que distingue entre mayúsculas y minúsculas en sus propias URL. Por ejemplo, el segundo enlace a continuación es un 404:

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

Actualización 2

Gracias por tus respuestas. Decidí tomar el consejo mencionado en la respuesta aceptada e implementar redireccionamientos 301 cuando sea necesario. Como estoy trabajando con WordPress, mi solución de código es la siguiente (en caso de que alguien esté interesado):

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
fuente
1
But wouldn't that result in duplicate content? – henrywrightNunca debe preocuparse por los enlaces duplicados si su sitio usa enlaces canónicos correctamente y puede acceder a 1 página de un millón de maneras y nunca verse afectado por el contenido duplicado.
Simon Hayter
@bybe Si tiene una página accedida de millones de maneras, Googlebot no podrá rastrear bien su sitio. Tener acceso a una página de varias maneras no es probable que duela.
Stephen Ostermiller

Respuestas:

6

Dos de los sistemas de archivos del sistema operativo más utilizados para servir contenido web tienen configuraciones muy diferentes para la distinción entre mayúsculas y minúsculas de las URL de forma predeterminada. Si sus URL distinguen entre mayúsculas y minúsculas, es probable que sea una función que esté utilizando:

  • Microsoft IIS que se ejecuta en Windows (URL que no distingue entre mayúsculas y minúsculas) muestra el mismo contenido independientemente de las mayúsculas.
  • El Servidor Apache HTTPD que se ejecuta en Linux (URL sensibles a mayúsculas y minúsculas) da un error 404 no encontrado por uso incorrecto de mayúsculas

En mi opinión, ninguno de los dos es el ideal:

  • Mostrar el mismo contenido independientemente de las mayúsculas dificulta el rastreo de su sitio web. Los motores de búsqueda consideran que el mismo contenido en múltiples URL es contenido duplicado.
  • Mostrar páginas de error para uso incorrecto de mayúsculas no es fácil de usar. Los usuarios no suelen tener en cuenta las mayúsculas cuando escriben.

La solución ideal sería mostrar la página solo cuando la URL esté correctamente en mayúscula. Para las mayúsculas incorrectas, el usuario debe ser redirigido 301 a la mayúscula preferida. Hay algunas maneras en que esto se puede lograr:

Stephen Ostermiller
fuente
1
Siento que esto es un artefacto de DOS y Windows que se desvía del estándar anterior de mayúsculas y minúsculas que tenemos en entornos Unix.
Dom
1
Si Apache distingue entre mayúsculas y minúsculas para las solicitudes que se asignan al sistema de archivos depende del sistema de archivos subyacente, no del propio Apache. Si ejecuta Apache en Windows, entonces solicita /iNdEx.HtMlo /InDeX.hTmlambos volverán /index.html(siempre que /index.htmlsea ​​un archivo físico en el sistema de archivos).
MrWhite
1
De hecho, esto parece ser lo mismo para IIS .
MrWhite
1
Bueno, IIS siempre se ejecuta en Windows (AFAIK), por lo que las solicitudes del sistema de archivos siempre distinguen entre mayúsculas y minúsculas. Sin embargo, muchos sitios enrutarán (reescribirán) las URL a través de algún tipo de controlador frontal; en este caso, la solicitud probablemente no se asigne a un archivo físico en el sistema de archivos y, por lo tanto, la URL distingue entre mayúsculas y minúsculas (a menos que la aplicación lo haga específicamente). -sensible) - que es básicamente lo mismo que Apache (cuando se ejecuta en Windows). (?)
MrWhite
2
De hecho, tropecé aquí mientras investigaba la pregunta reciente / ocupada " ¿Por qué las URL distinguen entre mayúsculas y minúsculas? ". Parece que frases como "IIS no distingue entre mayúsculas y minúsculas" (mencionadas varias veces en ese otro hilo) están tan extendidas que la creencia común parece ser que las URL en IIS siempre distinguen entre mayúsculas y minúsculas, al menos esa es la impresión que estaba teniendo. no parece ser el caso en absoluto.
MrWhite
4

Aquí está la posición de Google de una sesión de chat en vivo archivada (el enlace ahora está muerto):

* ¿La capitalización inconsistente de las URL causa problemas de contenido duplicado y la dilución de la clasificación de la página? Por ejemplo, www.site.com/abc vs www.site.com/Abc. En los hosts de Windows, estas son la misma página, pero son páginas diferentes en los hosts Unix.

JohnMu: Hola John, según los estándares existentes, las URL distinguen entre mayúsculas y minúsculas, por lo que sí, se verían como URL separadas. Dado que el contenido de las URL es el mismo, generalmente lo reconoceremos y solo conservaremos uno de ellos. Sin embargo, le recomendamos que intente mantener todos los enlaces dirigidos a una versión de la URL. Tenga en cuenta que esto también se aplica a los archivos robots.txt. *

El equipo de IE recomienda elegir una convención de carcasa de archivos y cumplirla estrictamente, ya que puede mejorar el rendimiento.

mvark
fuente
-2

RFC 3986 6.2.2.1 define los URI como insensibles a mayúsculas y minúsculas, por lo que no es una buena idea hacerlos sensibles a mayúsculas y minúsculas como hace wordpress.org.

Andreas Krischer
fuente
¿Pero eso no daría como resultado contenido duplicado?
En realidad no, porque los motores de búsqueda también deberían funcionar entre mayúsculas y minúsculas.
Supongo que la pregunta ahora es cómo averiguar si los motores de búsqueda ven las URL en mayúsculas y minúsculas como equivalentes. Tome Google por ejemplo:
10
Ese RFC solo aborda el caso de tres partes de la URL. 1 - El protocolo ( http://) - mayúsculas y minúsculas, normalizar a minúsculas. 2 - El nombre de host ( example.com) - no distingue entre mayúsculas y minúsculas, normalizar a minúsculas. 3. Porcentaje de caracteres codificados ( %3F) - sin mayúsculas y minúsculas, normalizar a mayúsculas. El resto de la URL generalmente
distingue entre