Non ho notato questo Redirect (301) quando ho richiesto un URL come questo senza barra ("/") alla fine: http://server/directory
Il server risponderà con un'intestazione permanente di reindirizzamento 301 con un'intestazione di posizione individuata in http://server/directory/
.
Guarda questo esempio dal vivo:
Richiesta dell'utente:
GET /social HTTP/1.1
( http://192.168.1.111/social )
Risposta del server Apache:
HTTP/1.1 301 Moved Permanently
Location: http://192.168.1.111/social/
Richiesta dell'utente:
GET /social/ HTTP/1.1
( http://192.168.1.111/social/ )
Risposta del server 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"
La directory / social / contiene un index.html
file.
Software Apache: Apache/2.2.22 (Ubuntu)
Opzioni directory:Options Indexes FollowSymLinks MultiViews
Quindi, la mia domanda è: perché Apache sta facendo questo? E come impedire il reindirizzamento e inviare index.html
direttamente il? I clienti devono inviare due richieste che non sono davvero necessarie. E forse alcuni client non consentono i reindirizzamenti e non saranno in grado di accedere al sito senza la barra finale ("/").
Non voglio disabilitare il reindirizzamento. Non voglio che il server invii la risposta direttamente senza reindirizzamento. Anche quando richiesto /social
.
Apache è progettato per reindirizzare tali richieste? Il server potrebbe semplicemente inviare i dati senza reindirizzare, giusto? Dovrei usare il mod_rewrite
per evitare questo? O un'altra configurazione? O dovrei semplicemente lasciare che sia così e aggiungere una barra alla fine di tutti i collegamenti HTML e vivere con alcuni reindirizzamenti?
Che cosa ne pensate?
index.html
/social
. (Inoltre, in generale, non è di solito necessario offrire lo stesso contenuto su più URL.)
/social
nel tuo esempio.