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 como dvd
(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
con Location: 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 internamente index.php?controller=dvd&action=list
. Una solicitud adicional, ¡pero aún peor! customer/login
redirecciona a la customer/login/
que a su vez redirige a la URL HTTPS de customer/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
sin action
simplemente cargas internas index.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;)