Esto se debe a un poco de una idea errónea de lo que realmente es una URL, probablemente ayudada por los días de archivos .HTML estáticos y scripts PHP.
Tradicionalmente, todo lo que pasa del TLD es un puntero a un archivo específico. Digamos que una entrada de blog se encuentra en example.com/blog/2009/oct/18/what-have-we-come-to
. Sin el uso de técnicas sofisticadas, significaría que hay una carpeta llamada blog, y en eso hay una 2009
carpeta, y en eso una carpeta para cada mes, y en esas carpetas OTRA carpeta para todos los días del mes. Claramente, esto se complica muy rápidamente.
Es por eso que los servidores web (como Apache) y los lenguajes de programación (como PHP) se inventaron Reescritura de URL . Lo que hace es convertir la URL mencionada en algo un poco más manejable, como example.com/blog/articles.php?id=423
. Aquí, un articles.php
el script utilizará la ID de publicación proporcionada para buscar la publicación correspondiente, luego mostrará la publicación, pero el usuario seguirá viendo la URL como example.com/blog/2009/oct/18/what-have-we-come-to
.
Otro enfoque simplemente desecha todo esto por completo. Todo más allá del TLD (en este caso, /questions/56772/website-url-hiding-hiding-file
) es simplemente un puntero a contenido , no necesariamente un archivo. Algunos sitios web, como Superusuario, se crean utilizando un enfoque MVC (Modelo-Vista-Controlador). Por lo general, esto implica una lista de URL para un sitio web y las asigna a las funciones y el código aplicables para mostrar esa página. Por ejemplo, el Superusuario podría verse así 1 :
'superuser.com/' > displayFrontPage()
'superuser.com/questions/' > displayQuestionsList(sorted=default)
'superuser.com/questions/<QuestionID>/<QuestionID>' > displayQuestion(question= QuestionID)
Esto se colocaría más comúnmente en un archivo por sí mismo. Un diseño común podría ser:
superuser/
controller.aspx (which contains the list of URLs and points to a view in views.aspx)
views.aspx (which contains all the code for the superuser, such as displayFrontPage() and displayQuestion(question= QuestionID))
models.aspx (which contains information about the table in the database.)
1 Por favor, tenga en cuenta que no tengo idea de cómo funciona el controlador para ASP MVC (soy más un tipo de Django), por lo que probablemente no sea tan preciso. Es solo un ejemplo
.php
al final de cada URL, cuando en realidad no hay archivos PHP en ninguna parte del servidor. Así que Google decidió simplemente usar "búsqueda" sin ninguna extensión. Podrían haber hecho algo como esto, si hubieran querido (y en realidad no hubiera cambiado nada):google.com/search/client=safari/q=superuser/
El archivo es el predeterminado, tal como se define en la configuración de los servidores web, o está usando la reescritura de URL (la ruta de la carpeta puede que ni siquiera exista)
fuente
Lo que realmente estaba buscando es esto: solo cree un directorio, tenga index.php / html dentro de la carpeta y los enlaces a ese directorio no mostrarán el archivo. Gracias por las otras cosas también.
fuente