Eu realmente não notei esse redirecionamento (301) ao solicitar um URL como este sem barra ("/") no final: http://server/directory
O servidor receberá um cabeçalho 301 Redirect Permanent com um cabeçalho Location localizado http://server/directory/
.
Veja este exemplo ao vivo:
Solicitação de usuário:
GET /social HTTP/1.1
( http://192.168.1.111/social )
Servidor Apache Responda:
HTTP/1.1 301 Moved Permanently
Location: http://192.168.1.111/social/
Solicitação de usuário:
GET /social/ HTTP/1.1
( http://192.168.1.111/social/ )
Servidor Apache Responda:
HTTP/1.1 200 OK
Apache access.log:
192.168.1.130 - - [05/Apr/2014:22:06:47 +0200] "GET /social HTTP/1.1" 301 558 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0"
-
192.168.1.130 - - [05/Apr/2014:22:06:47 +0200] "GET /social/ HTTP/1.1" 200 942 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0"
O diretório / social / contém um index.html
arquivo.
Software Apache: Apache/2.2.22 (Ubuntu)
Opções de Diretório:Options Indexes FollowSymLinks MultiViews
Então, minha pergunta é: por que o apache está fazendo isso? E como impedir o redirecionamento e enviar index.html
diretamente? Os clientes precisam enviar duas solicitações, o que é realmente desnecessário. E talvez alguns dos clientes não permitam redirecionamentos e não possam acessar o site sem a barra final ("/").
Não quero desativar o redirecionamento. Não quero que o servidor envie a resposta diretamente sem nenhum redirecionamento. Mesmo ao solicitar /social
.
O apache foi projetado para redirecionar essas solicitações? O servidor poderia simplesmente enviar os dados sem redirecionar, certo? Devo usar o mod_rewrite
para evitar isso? Ou outra configuração? Ou devo deixar assim e adicionar uma barra no final de todos os links html e viver com alguns redirecionamentos?
O que é que vocês acham?
index.html
sem redirecionamento
/social
. (Além disso, apenas, em geral, com o mesmo conteúdo em vários URLs geralmente não é desejado.)
/social
no seu exemplo.