Muitas vezes, vejo que as extensões de URL estão ocultas (por exemplo .html
, .php
), mas nem todos os sites fazem isso.
Por que os webmasters ocultam a extensão? É por segurança, para o URL parecer mais limpo ou para algum outro propósito?
Muitas vezes, vejo que as extensões de URL estão ocultas (por exemplo .html
, .php
), mas nem todos os sites fazem isso.
Por que os webmasters ocultam a extensão? É por segurança, para o URL parecer mais limpo ou para algum outro propósito?
Respostas:
Há vários motivos para remover extensões de URLs:
Tenha em mente que muitos sites são gerados por um sistema de gerenciamento de conteúdo (CMS) que faria URLs semelhante a este: /index.php?page=this-is-the-widget-page
. Isso é particularmente feio e tem muito mais crusta do que apenas uma extensão. Reescrever para remover o index.php?page=
torna muito melhor.
Não são necessárias extensões na Web porque os servidores enviam o tipo de documento como um cabeçalho. As páginas da Web são exibidas como text/html
, imagens como image/png
ou image/jpeg
. Isso permite que os navegadores saibam como renderizar o conteúdo sem usar uma extensão para descobrir que o URL contém texto, HTML, PDF ou imagem (para obter mais informações, consulte o artigo da Wikipedia, tipo de mídia na Internet ).
Alguns webmasters optam por usar uma extensão em seus URLs que corresponda a esse tipo de conteúdo. Portanto, qualquer text/html
documento teria uma .html
extensão e qualquer image/png
documento teria uma .png
extensão. Isso pode ajudar quando os URLs são salvos no sistema de arquivos em que os metadados sobre seu tipo de conteúdo são perdidos. Na maioria dos sistemas de arquivos, o programa que abre o arquivo é escolhido pela extensão. Portanto, mesmo que uma página seja exibida pelo PHP, alguns webmasters removem a .php
extensão e outros a substituem .html
.
Há também a questão de saber se os URLs podem terminar melhor em slash à direita ( /
) quando eles não têm extensão que tem muita discussão sobre Stack Overflow.
Todos os servidores da web possuem um ou mais "arquivos padrão". É o arquivo que será exibido sempre que um visitante acessar um URL que termina em uma barra /
, ou seja, uma pasta.
Se o nome do arquivo padrão no servidor da web for index.php
e um visitante acessar www.example.com/pagename/
, ele estará realmente acessando www.example.com/pagename/index.php
.
Se não houver rastreamento /
, o servidor da Web provavelmente está apenas reescrevendo o URL para removê-lo, pois não é necessário. Este site, de fato, faz isso.
Esse é o tipo de esquema de URI "legal" que eu pretendo no meu site pessoal.
Pessoalmente, a razão pela qual comecei a fazê-lo (e provavelmente muitos mais designers / desenvolvedores de web também!) Foi depois de ler o artigo “URIs legais não mudam” - este documento foi escrito pelo pai fundador da World Wide Web, Tim Berners -Lee.
No famoso artigo de Tim Berners-Lee, ele basicamente afirma as mesmas razões que Stephen Ostermiller tem em sua excelente resposta a essa pergunta .
Para dar uma resposta mais específica à sua pergunta principal, "Por que as extensões estão ocultas nos URLs?" Bem, eu diria que os principais motivos para mim são:
1. Para preparar o URI para o futuro:
Por exemplo, pode ter parecido uma boa ideia no momento usar um URI como:
http://www.example.com/page.pl
onde .pl
está sendo a extensão do arquivo para um script Perl. No entanto, thesedays, a maioria dos desenvolvedores web usar ASP.NET ou PHP para backend-scripting, então véspera embora hoje ,
http://www.example.com/page.php
soa como uma idéia melhor, eventualmente, PHP e ASP / ASP.net irá tornar-se antiquado. Portanto, uma idéia melhor é remover completamente a extensão.
2. Legibilidade e memorabilidade:
É muito mais fácil passar um URI "legal" para as pessoas verbalmente, em papel (por exemplo, anúncios, cartões de visita etc.), sem mencionar que é mais fácil de lembrar.
3. "Hackabilidade" *
Embora eu diria que a grande maioria dos usuários hoje em dia provavelmente passa por um mecanismo de pesquisa para tudo - eu até vi pessoas que acessavam a barra de endereços e digitavam www.google.com
e depois usavam o Google para digitar literalmente www.ebay.com
! Mas acho que, se eu tiver um site baseado em multimídia, o URI http://www.example.com/video
indica que a seção de música pode ser encontrada no URI http://www.example.com/audio
e assim por diante. (Ainda uso a barra de endereços para acessar sites - sou bastante "antiquado" sobre esse tipo de coisa!)
* (! Oh “Hackability” - faz essa palavra existe mesmo ?! Bem, não agora !) :-)
4. ** Estética: Para torná-los mais bonitos! (Culpe meu TOC!)
No entanto, notei lendo vários sites relacionados ao SEO que muitos webmasters realmente anexam extensões de arquivo a URIs dinâmicos, por exemplo:
O URI real pode ser:
http://www.example.com/article
No entanto, o webmaster executará uma reescrita para tornar a aparência do URI estática, como:
http://www.example.com/article.html
A lógica por trás disso é que, basicamente, um mecanismo de pesquisa atribui uma classificação mais alta às páginas estáticas (que são, aparentemente, menos propensas a mudar). (Embora eu não seja exatamente um especialista em SEO, eu pessoalmente não aceito essa ideia - estou convencendo que, com o tipo de mente por trás dos algoritmos do Google e do Bing, será necessário um pouco mais do que uma extensão de arquivo falsa para con o seu caminho para a pole position da SERP!)
Para obter mais informações sobre como nomear URIs, recomendo a leitura destes artigos:
Tim Berners-Lee:
Dicas de controle de qualidade do W3C:
Brian Kelly (UK Web Focus / UKOLN - Universidade de Bath):
Espero que isto ajude!
Concordo plenamente com todas as respostas colocadas acima. Basta acrescentar que uma das razões pelas quais as extensões estão ocultas no URL é a segurança. Simplificando, se você não expor a extensão na URL, é pouco difícil descobrir a tecnologia na qual o aplicativo foi construído. Então, digamos que uma página feita em PHP e a extensão não esteja oculta, um hacker pode descobrir as vulnerabilidades do PHP e usá-lo para executar alguma atividade maliciosa.
Você oculta suas extensões de página ou não, as pessoas ainda podem saber qual tecnologia você usou. Ao usar o cURL, não é impossível obter sua tecnologia buscando as informações do cabeçalho.
curl -I -L rembatvideo.ga
Então, você veria algo como sua tecnologia, solicitação de cache, conexão e muito mais.
Concordo totalmente como explicado por "Stephen Ostermiller", mas eu gostaria de mencionar o truque por trás disso para ocultar a extensão de URLs. E para isso você deve usar a regra de reescrita .htaccess , eis o script que ajuda você:
Redirecionar .php
solicitações externas para URL sem extensão
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]