Esconder / ocultar arquivo de URL do site

3

Alguns sites, independentemente da página em que você esteja, sempre mostram apenas o nome do domínio na barra de endereço e nada mais.

E muitos mostram as pastas, por exemplo link , mas não mostra o arquivo real, que seria como http://domain.tld/folder/file.extension .

Como os dois são realizados?

    
por mk12 18.10.2009 / 01:16

3 respostas

9

Isso se deve a um equívoco com o que uma URL realmente é, provavelmente ajudada pelos dias de arquivos .HTML estáticos e scripts PHP.

Tradicionalmente, tudo que passou pelo TLD é um ponteiro para um arquivo específico. Digamos que uma postagem no blog esteja localizada em example.com/blog/2009/oct/18/what-have-we-come-to . Sem o uso de técnicas sofisticadas, isso significaria que existe uma pasta chamada blog, e em que é uma pasta 2009 , e em que uma pasta para cada mês e nessas pastas outra pasta para todos os dias do mês. Claramente, isso fica muito complicado muito rapidamente.

É por isso que os servidores da Web (como o Apache) e as linguagens de programação (como o PHP) inventaram URL reescrita . O que isso faz é converter a referida URL em algo um pouco mais gerenciável, como example.com/blog/articles.php?id=423 . Aqui, o script articles.php usará a ID de postagem fornecida para pesquisar a postagem aplicável e, em seguida, exibirá a postagem, mas o usuário ainda verá a URL como example.com/blog/2009/oct/18/what-have-we-come-to .

Outra abordagem apenas resume tudo isso. Tudo além do TLD (neste caso, /questions/56772/website-url-hiding-hiding-file ) é meramente um ponteiro para conteúdo , não necessariamente um arquivo. Alguns sites, como Super User, são construídos usando uma abordagem MVC (Model-View-Controller). Geralmente, isso envolve uma lista de URLs para um site e os mapeia para as funções e códigos aplicáveis para exibir essa página. Por exemplo, o Superusuário pode se parecer com isso 1 :

'superuser.com/' > displayFrontPage()
'superuser.com/questions/' > displayQuestionsList(sorted=default)
'superuser.com/questions/<QuestionID>/<QuestionID>' > displayQuestion(question= QuestionID)

Isso geralmente seria colocado em um arquivo por si só. Eu tenho um layout comum:

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, tenha em mente que eu não tenho idéia de como o controller funciona para o ASP MVC (eu sou mais do Django), então isso provavelmente não é tão preciso. É apenas um exemplo

    
por 18.10.2009 / 01:34
1

O arquivo é um padrão, conforme definido na configuração dos servidores da web, ou está usando a reescrita do URL (o caminho da pasta pode nem existir).

    
por 18.10.2009 / 01:19
0

O que eu realmente estava procurando era: basta criar um diretório, ter index.php / html dentro da pasta e os links para esse diretório não mostrarão o arquivo. Obrigado pelas outras coisas também.

    
por 21.10.2009 / 00:06