Realmente no he notado este Redirect (301) al solicitar una URL como esta sin barra diagonal ("/") al final: http://server/directory
El servidor responderá con un encabezado permanente de redireccionamiento 301 con un encabezado de ubicación ubicado en http://server/directory/
.
Vea este ejemplo en vivo:
Solicitud del usuario:
GET /social HTTP/1.1
( http://192.168.1.111/social )
Respuesta del servidor Apache:
HTTP/1.1 301 Moved Permanently
Location: http://192.168.1.111/social/
Solicitud del usuario:
GET /social/ HTTP/1.1
( http://192.168.1.111/social/ )
Respuesta del servidor Apache:
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"
El directorio / social / contiene un index.html
archivo.
Software Apache: Apache/2.2.22 (Ubuntu)
Opciones de directorio:Options Indexes FollowSymLinks MultiViews
Entonces, mi pregunta es: ¿por qué apache está haciendo esto? ¿Y cómo evitar la redirección y enviar index.html
directamente? Los clientes tienen que enviar dos solicitudes, lo cual es realmente innecesario. Y tal vez algunos de los clientes no permiten redireccionamientos y no podrán ir al sitio sin la barra diagonal final ("/").
No quiero deshabilitar la redirección. Quiero que el servidor envíe la respuesta directamente sin ningún redireccionamiento. Incluso cuando lo solicite /social
.
¿Apache está diseñado para redirigir esas solicitudes? El servidor podría enviar los datos sin redireccionar, ¿verdad? ¿Debo usar el mod_rewrite
para evitar esto? U otra configuración? ¿O debería dejar que sea así y agregar una barra al final de todos los enlaces html y vivir con algunos redireccionamientos?
¿Qué piensan ustedes?
index.html
/social
. (Además, solo en general, no se desea servir el mismo contenido en varias URL).
/social
en su ejemplo.