¿Cuándo se debe usar una barra inclinada final en una URL? Por ejemplo, ¿mi URL debería ser similar /about-us/
o similar /about-us
?
Soy plenamente consciente de los problemas relacionados con el SEO: contenido duplicado y lo canónico; Estoy tratando de averiguar cuál debo usar en el contexto de servir páginas correctamente solo.
Por ejemplo, mi colega está pensando que una barra diagonal al final significa que es una "carpeta", un "directorio", por lo que este no es un estilo correcto. Pero creo que sin una barra al final, tampoco es del todo correcto, porque casi parece una carpeta, pero no lo es y tampoco es un archivo normal, sino un nombre de archivo sin extensión.
¿Hay una manera adecuada de saber cuál usar?
Respuestas:
En mi opinión personal, las barras diagonales finales se usan incorrectamente.
Básicamente, el formato URL provino del mismo formato UNIX de archivos y carpetas, más tarde, en sistemas DOS, y finalmente, adaptado para la web.
Fuente: Wikipedia: Identificador uniforme de recursos
Otra buena fuente para leer: Wikipedia: Esquema URI
Fuente: Wikipedia Uniform Resource Locator (URL)
También:
Fuente: Blog de Google WebMaster Central: recortar o no recortar
Finalmente:
Una barra diagonal al final de la URL hace que la dirección se vea "bonita".
Una URL sin barra oblicua al final y sin extensión parece algo "extraña".
Nunca nombrará su archivo CSS (por ejemplo) http://www.sample.com/stylesheet/, ¿verdad?
PERO soy un defensor de las mejores prácticas web independientemente del entorno. Puede ser inestable y poco claro, tal como dijiste sobre la URL sin ext.
fuente
index.html
(o un archivo con un nombre similar) cuando se accede a un directorio, por lo que/foo/
es/foo/index.html
sin el desorden adicional. Además, en el pasado, los navegadores agregaban/
el nombre de dominio, pero ellos (Firefox, Chrome, Opera) han cambiado para omitir el/
acceso a la página de inicio.No es una cuestión de preferencia.
/base
y/base/
tienen una semántica diferente. En muchos casos, la diferencia no es importante. Pero es importante cuando hay URL relativas.child
relativo a/base/
es/base/child
.child
relativo a/base
es (quizás sorprendentemente)/child
.fuente
Uri.MakeRelativeUri
. Los resultados reflejan exactamente lo que dijiste. Solucioné el problema agregando la barra diagonal a mi baseUri
.Siempre me sorprende el uso extensivo de barras diagonales finales en URL que no son de directorio (WordPress, entre otros). Esto realmente no debería ser un debate de uno u otro porque poner una barra después de un recurso es semánticamente incorrecto. La web fue diseñada para entregar recursos direccionables, y esas direcciones - URL - fueron diseñadas para emular una jerarquía de sistema de archivos estilo * nix. En ese contexto:
Usando estas pautas, es incorrecto poner una barra diagonal después de un recurso que no sea de directorio.
fuente
directory
(de lo contrario,image.png
enhttp://hostname/directory
apuntaría ahttp://hostname/image.png
). Solo decía que la distinción entre un archivo y un directorio puede no ser muy importante desde el punto de vista del usuario.Eso no es realmente una cuestión de estética, sino una diferencia técnica. El directorio que lo piensa es totalmente correcto y prácticamente explica todo. Vamos a resolverlo:
Ahora está de vuelta en la edad de piedra o solo sirve páginas estáticas.
Tiene una estructura de directorio fija en su servidor web y solo archivos estáticos como imágenes, html, etc.
Un navegador solicita
/index.htm
, existe y se entrega al cliente. Más tarde, tendrá muchas, digamos, películas en DVD revisadas y una página html para cada una de ellas en el/dvd/
directorio. Ahora alguien solicita/dvd/adams_apples.htm
y se entrega porque está allí.Algún día, alguien simplemente solicita
/dvd/
, que es un directorio y el servidor está tratando de averiguar qué entregar. Además de las restricciones de acceso y así sucesivamente, hay dos posibilidades: mostrar al usuario el contenido del directorio (apuesto a que ya ha visto esto en alguna parte) o mostrar un archivo por defecto (en Apache es:DirectoryIndex: sets the file that Apache will serve if a directory is requested.
)Hasta ahora todo bien, este es el caso esperado. Ya muestra la diferencia en el manejo, así que vamos a entrar:
A las 5:34 am cometiste un error al subir tus archivos
(Lo cual, por cierto, es completamente comprensible). Entonces, hizo algo completamente incorrecto y, en lugar de cargarlo
/dvd/the_big_lebowski.htm
, cargó ese archivo comodvd
(sin extensión)/
.Alguien marcó como favorito su
/dvd/
directorio (por supuesto, no desea crear y actualizar siempre ese ingeniosoindex.htm
) y está visitando su sitio web. El contenido del directorio se entrega, todo bien.Alguien se enteró de tu lista y está escribiendo
/dvd
. Y ahora está jodido. En lugar de que su directorio de DVD enumere el servidor encuentra un archivo con ese nombre y está entregando su archivo Big Lebowski.Entonces, eliminas ese archivo y le dices al chico que vuelva a cargar la página. Su servidor busca el
/dvd
archivo, pero ya no está. La mayoría de los servidores se darán cuenta de que hay un directorio con ese nombre y le dirán al cliente que lo que estaba buscando está en otro lugar. La respuesta probablemente será:Status Code:301 Moved Permanently
conLocation: http://[...]/dvd/
Entonces, ignorando por completo lo que piensa sobre directorios o archivos, el servidor solo puede manejar tales cosas y, a menos que se le diga lo contrario, decide por usted sobre el significado de "barra oblicua o no".
Finalmente, después de recibir esta respuesta, el cliente carga
/dvd/
y todo está bien.¿Está bien? No.
"Simplemente bien" no es lo suficientemente bueno para ti
Tienes una página dinámica donde todo se pasa
/index.php
y se procesa. Todo funcionó bastante bien hasta ahora, pero todo eso comienza a sentirse más lento e investigas.Pronto, notará que
/dvd/list
está haciendo exactamente lo mismo: redireccionar a lo/dvd/list/
que luego se traduce internamenteindex.php?controller=dvd&action=list
. Una solicitud adicional, ¡pero aún peor!customer/login
redirecciona a lacustomer/login/
que a su vez redirige a la URL HTTPS decustomer/login/
. Termina teniendo toneladas de redireccionamientos HTTP innecesarios (= solicitudes adicionales) que hacen que la experiencia del usuario sea más lenta.Lo más probable es que también tenga un índice de directorio predeterminado aquí:
index.php?controller=dvd
sinaction
simplemente cargas internasindex.php?controller=dvd&action=list
.Resumen:
Si termina con
/
esto, nunca puede ser un archivo. Ningún servidor adivinando.Slash o no slash son significados completamente diferentes. Existe una diferencia técnica / de recursos entre "barra oblicua o sin barra oblicua", y debe ser consciente de ello y utilizarlo en consecuencia. Solo porque el servidor probablemente carga
/dvd/index.htm
, o carga el material de script correcto, cuando dice/dvd
: Lo hace, pero no porque haya hecho la solicitud correcta. Que habría sido/dvd/
.Omitir la barra oblicua incluso si realmente quiere decir que la versión recortada le otorga una penalización de solicitud HTTP adicional. Lo que siempre es malo (piense en la latencia móvil) y tiene más peso que una "URL bonita", especialmente porque los rastreadores no son tan tontos como creen o quieren que creas los SEO;)
fuente
dvd
)?Cuando haga su URL
/about-us/
(con la barra final), es fácil comenzar con un solo archivoindex.html
y luego expandirlo y añadir más archivos (por ejemploour-CEO-john-doe.jpg
) o incluso construir una jerarquía en virtud del mismo (por ejemplo/about-us/company/
,/about-us/products/
, etc.) según sea necesario, sin cambiando la URL publicada . Esto te da una gran flexibilidad.fuente
/about-us
o/about-us/
todavía necesito cambiar la URL publicada en ambos casos si amplié el directorio. ¡el nuevo archivo estará/about-us/new-file.html
en ambos casos! ¿que me estoy perdiendo aqui?/about-us
y/about-us/company
? En términos de servir los archivos, tanto Apache como IIS pueden manejar esto bien, así que no estoy de acuerdo./about-us
que quieres vincular/about-us/company
, tienes que usarhref="https://stackoverflow.com/about-us/company"
ohref="./company"
(aunque no estoy seguro de eso). Si usted está en/about-us/
, sin embargo, es muy sencillo:href="company"
.Otras respuestas aquí parecen favorecer la omisión de la barra diagonal final. Hay un caso en el que una barra diagonal final ayudará con la optimización de motores de búsqueda (SEO). Es el caso de que su documento tenga lo que parece ser una extensión de archivo que no lo es
.html
. Esto se convierte en un problema con los sitios que son sitios web de calificación. Pueden elegir entre estas dos URL:http://mysite.example.com/rated.example.com
http://mysite.example.com/rated.example.com/
En tal caso, elegiría el que tiene la barra inclinada final . Esto se debe a que la
.com
extensión es una extensión para los archivos de comandos ejecutables de Windows. Los motores de búsqueda y los verificadores de virus a menudo no les gustan las URL que parecen contener malware distribuido a través de dichos mecanismos. La barra inclinada final parece mitigar cualquier inquietud, permitiendo que la página se clasifique en los motores de búsqueda y evite los controles de virus.Si sus URL no tienen
.
en la parte del archivo, entonces recomendaría omitir la barra diagonal para simplificar.fuente
¿Quién dice que un nombre de archivo necesita una extensión? eche un vistazo a una máquina * nix en algún momento ...
Estoy de acuerdo con su amigo, no hay barra diagonal.
fuente
Desde una perspectiva de SEO, elegir si incluir o no una barra diagonal al final de una URL es irrelevante. En estos días, es común ver ejemplos de ambos en la web. Un sitio no será penalizado de ninguna manera, ni esta elección afectará el ranking del motor de búsqueda de su sitio web u otras consideraciones de SEO.
Simplemente elija una convención de nomenclatura de URL que prefiera e incluya una metaetiqueta canónica en la
<head>
sección de cada página web.Los motores de búsqueda pueden considerar una sola página web como dos URL duplicadas separadas cuando la encuentran con y sin la barra inclinada final, es decir,
example.com/about-us/
yexample.com/about-us
.Se recomienda incluir una metaetiqueta canónica en cada página porque no puede controlar cómo otros sitios se vinculan a sus URL.
La etiqueta canónica se parece a esto:
<link rel="canonical" href="https://example.com/about-us" />
. El uso de una metaetiqueta canónica garantiza que los motores de búsqueda solo cuenten cada una de sus URL una vez, independientemente de si otros sitios web incluyen una barra diagonal final cuando se vinculan a su sitio.fuente