¿Por qué las extensiones a menudo se ocultan en las URL?

20

Muchas veces veo que las extensiones de URL están ocultas (por ejemplo .html, .php), pero no todos los sitios web hacen esto.

¿Por qué los webmasters ocultan la extensión? ¿Es por seguridad, para que la URL se vea más limpia o para algún otro propósito?

Desconocido
fuente

Respuestas:

29

Existen varias razones para eliminar extensiones de las URL:

  • Para que las URL se vean más limpias
  • Para que las URL sean más fáciles de escribir
  • Para hacer que las URL sean más fáciles de recordar
  • Para hacer que las URL sean más amigables con las palabras clave SEO
  • Para poder cambiar las tecnologías: si alguna vez desea mover su sitio de una tecnología a otra, es más fácil hacerlo sin que los usuarios sepan si no hay extensiones en las URL

Tenga en cuenta que muchos sitios son generados por un sistema de gestión de contenidos (CMS) que haría que las URL siguiente aspecto: /index.php?page=this-is-the-widget-page. Eso es particularmente feo y tiene mucho más rudo que solo una extensión. Reescribiendo para eliminarindex.php?page= hace mucho mejor.

No se necesitan extensiones en la web porque los servidores envían el tipo de documento como encabezado. Las páginas web se sirven como text/htmlimágenes image/pngo image/jpeg. Esto permite a los navegadores saber cómo representar el contenido sin usar una extensión para descubrir que la URL contiene texto, HTML, PDF o imagen (para obtener más información, consulte el artículo de Wikipedia sobre el tipo de medio de Internet ).

Algunos webmasters eligen usar una extensión en sus URL que coincida con este tipo de contenido. Por lo tanto, cualquier text/htmldocumento tendría una .htmlextensión y cualquier image/pngdocumento tendría una .pngextensión. Eso puede ayudar cuando las URL se guardan en el sistema de archivos donde se pierden los metadatos sobre su tipo de contenido. En la mayoría de los sistemas de archivos, la extensión elige el programa que abre el archivo. Entonces, incluso si PHP sirve una página, algunos webmasters eliminan la .phpextensión y otros la reemplazan por.html .

También está la cuestión de si las URL podrían ser mejores terminando en una barra inclinada ( /) cuando no tienen extensión, lo que tiene mucha discusión sobre el desbordamiento de pila.

Stephen Ostermiller
fuente
11
En algunos marcos (por ejemplo, MVC), la URL no identifica un archivo, por lo que no hay ninguna extensión que ocultar.
Henrik Ripa
6

Todos los servidores web tienen uno o más "archivos predeterminados". Es el archivo que se mostrará cada vez que un visitante vaya a una URL que termine en una barra diagonal /, es decir, una carpeta.

Si el nombre de archivo predeterminado en su servidor web es index.phpy va un visitante www.example.com/pagename/, en realidad está accediendo www.example.com/pagename/index.php.

Si no hay seguimiento /, el servidor web probablemente solo está reescribiendo la URL para eliminarlo, ya que no es necesario. Este sitio, de hecho, hace eso.

Athoxx
fuente
2
No estoy seguro de que la pregunta fuera "cómo" sino más bien "por qué". Patrik tu respuesta es absolutamente correcta con respecto al cómo. Stephen, sin embargo, respondió el "por qué"
Brandt Solovij
4

Este es el tipo de esquema URI "genial" que busco en mi propio sitio web personal.

Personalmente, la razón por la que comencé a hacerlo (¡y probablemente muchos más diseñadores / desarrolladores web también!) Fue después de leer el artículo "Los URI geniales no cambian" : este documento fue escrito por el padre fundador de la World Wide Web, Tim Berners -Sotavento.

En el famoso artículo de Tim Berners-Lee, básicamente declara las mismas razones que Stephen Ostermiller tiene en su excelente respuesta a esta pregunta. .

Para dar una respuesta más específica a su pregunta principal, "¿Por qué las extensiones están ocultas en las URL?" Bueno, yo diría que las principales razones para mí son:

1. Para preparar el futuro del URI:

Por ejemplo, podría haber sonado como una buena idea en el momento de usar un URI como: http://www.example.com/page.pl donde .ples la exención de archivo para un script Perl. Sin embargo, en la actualidad, la mayoría de los desarrolladores web usan ASP.NET o PHP para la creación de scripts de back-end, por lo que incluso hoy , http://www.example.com/page.php parece una mejor idea, eventualmente PHP y ASP / ASP.net se volverán anticuados. Entonces, una mejor idea es eliminar la extensión por completo.

2. Legibilidad y memorabilidad:

Es mucho más fácil transmitir un URI “genial” a las personas verbalmente, en papel (por ejemplo, anuncios, tarjetas de presentación, etc.), sin mencionar que es más fácil de recordar.

3. "Hackability" *

Aunque diría que la gran mayoría de los usuarios en estos días probablemente pasan por un motor de búsqueda para todo, ¡incluso he visto personas que irían a la barra de direcciones y escribirían www.google.com, y luego usarían Google para escribir literalmente www.ebay.com! Pero, creo que si tengo un sitio web basado en multimedia, el URI http://www.example.com/videosugiere que la sección de música se puede encontrar debajo del URI http://www.example.com/audio, y así sucesivamente. (Todavía uso la barra de direcciones para ir a sitios web, ¡soy bastante "de la vieja escuela" sobre ese tipo de cosas!)

* (¡Oh! "Hackability" - ¿existe esa palabra? ¡ Bueno, ahora !) :-)

4. ** Estética: ¡ para que se vean más bonitas! (¡Culpe a mi TOC!)

Sin embargo, al leer a través de varios sitios web relacionados con SEO, he notado que muchos webmasers realmente agregan extensiones de archivo a URI dinámicos, por ejemplo:

El URI real puede ser: http://www.example.com/article

Sin embargo, el webmaster realizará una reescritura para que el URI "se vea" estático, como por ejemplo: http://www.example.com/article.html

La lógica detrás de esto es que, básicamente, un motor de búsqueda asignará una clasificación más alta a las páginas estáticas (que, aparentemente, es menos probable que cambien). (Aunque no soy exactamente un experto en SEO, personalmente no creo en esta idea, supongo que con el tipo de mentes detrás de los algoritmos de Google y Bing, tomará un poco más que una extensión de archivo falso para ¡Conviértete en la pole position SERP!)

Para obtener más información sobre cómo nombrar URI, recomiendo leer estos artículos:

Tim Berners-Lee:

Consejos de control de calidad del W3C:

Brian Kelly (UK Web Focus / UKOLN - Universidad de Bath):

¡Espero que esto ayude!

Jordan Clark
fuente
2

Estoy completamente de acuerdo con todas las respuestas anteriores. Solo agrego que una de las razones por las que las extensiones están ocultas en la URL es la seguridad. En pocas palabras, si no expone la extensión en la URL, es poco difícil descubrir la tecnología con la que se ha creado la aplicación. Entonces, digamos que una página está hecha en PHP y la extensión no está oculta, entonces un hacker podría descubrir las vulnerabilidades de PHP y usarlo para ejecutar alguna actividad maliciosa.

Vishal Raj
fuente
Estoy de acuerdo con su comentario, pero creo que usar URIs para ofuscar su tecnología de back-end como medida de seguridad es inútil. A primera vista, está ocultando la tecnología particular utilizada. Desafortunadamente, las únicas personas a las que va a "engañar" son los usuarios finales; algunos (si no la mayoría) de los cuales no tienen idea de qué es una URL, y mucho menos dicen ASP / PHP / etc. A falta de una mejor frase, estás como "predicando al coro".
Jordan Clark
1

Ocultas o no tus extensiones de página, las personas aún pueden saber qué tecnología has utilizado. Al usar cURL, no es imposible obtener su tecnología buscando la información del encabezado.

curl -I -L rembatvideo.ga

Luego, vería algo como su tecnología, solicitud de caché, conexión y más.

Hans Isaa
fuente
0

Totalmente de acuerdo con lo explicado por "Stephen Ostermiller", pero me gustaría mencionar el truco detrás de eso para ocultar la extensión de las URL. Y para eso tienes que usar la regla de reescritura .htaccess , aquí está el script que te ayuda:

Redireccionar .phpsolicitudes externas a URL sin extensión

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
Rajesh Magar
fuente