Je n'ai pas vraiment remarqué cette redirection (301) lors de la demande d'une URL comme celle-ci sans barre oblique ("/") à la fin: http://server/directory
Le serveur répondra avec un en-tête permanent de redirection 301 avec un en-tête de localisation localisant http://server/directory/
.
Voir cet exemple en direct:
Demande de l'utilisateur:
GET /social HTTP/1.1
( http://192.168.1.111/social )
Réaction du serveur Apache:
HTTP/1.1 301 Moved Permanently
Location: http://192.168.1.111/social/
Demande de l'utilisateur:
GET /social/ HTTP/1.1
( http://192.168.1.111/social/ )
Réaction du serveur 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"
Le répertoire / social / contient un index.html
fichier.
Logiciel Apache: Apache/2.2.22 (Ubuntu)
Options de répertoire:Options Indexes FollowSymLinks MultiViews
Alors, ma question est: pourquoi Apache fait ça? Et comment empêcher la redirection et envoyer le index.html
directement? Les clients doivent envoyer deux demandes, ce qui est vraiment inutile. Et peut-être que certains clients n'autorisent pas les redirections et ne pourront pas accéder au site sans la barre oblique de fin ("/").
Je ne veux pas désactiver la redirection. Je ne veux pas que le serveur envoie la réponse directement sans aucune redirection. Même lors d'une demande /social
.
Apache est-il conçu pour rediriger ces demandes? Le serveur pourrait simplement envoyer les données sans redirection, non? Dois-je utiliser le mod_rewrite
pour éviter cela? Ou une autre configuration? Ou devrais-je simplement le laisser comme ça et ajouter une barre oblique à la fin de tous les liens html et vivre avec des redirections?
Qu'en pensez-vous?
index.html
sans redirection
/social
. (En outre, juste en général, servir le même contenu à plusieurs URL n'est généralement pas souhaité.)
/social
dans votre exemple.