Ich habe diese Weiterleitung (301) nicht wirklich bemerkt, als ich eine URL wie diese ohne Schrägstrich ("/") am Ende anforderte: http://server/directory
Der Server antwortet mit einem permanenten 301-Redirect-Header und einem Location-Header, der sich in befindet http://server/directory/
.
Sehen Sie sich dieses Live-Beispiel an:
Benutzeranfrage:
GET /social HTTP/1.1
( http://192.168.1.111/social )
Apache Server-Antwort:
HTTP/1.1 301 Moved Permanently
Location: http://192.168.1.111/social/
Benutzeranfrage:
GET /social/ HTTP/1.1
( http://192.168.1.111/social/ )
Apache Server-Antwort:
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"
Das Verzeichnis / social / enthält eine index.html
Datei.
Apache Software: Apache/2.2.22 (Ubuntu)
Verzeichnisoptionen:Options Indexes FollowSymLinks MultiViews
Meine Frage lautet also: Warum macht Apache das? Und wie kann man die Weiterleitung verhindern und index.html
direkt versenden ? Kunden müssen zwei Anfragen senden, was wirklich unnötig ist. Und vielleicht erlauben einige der Clients keine Weiterleitungen und können die Site nicht ohne den abschließenden Schrägstrich ("/") aufrufen.
Ich möchte die Umleitung nicht deaktivieren. Ich möchte nicht, dass der Server die Antwort direkt ohne Weiterleitung sendet. Auch bei Aufforderung /social
.
Ist Apache darauf ausgelegt, diese Anfragen umzuleiten? Der Server könnte die Daten einfach ohne Umleitung senden, oder? Soll ich die verwenden mod_rewrite
, um dies zu verhindern? Oder eine andere Konfiguration? Oder sollte ich es einfach so lassen und am Ende aller HTML-Links einen Schrägstrich einfügen und mit einigen Weiterleitungen leben?
Was denkt ihr?
index.html
ohne Weiterleitung
/social
. (Außerdem ist es im Allgemeinen nicht erwünscht, denselben Inhalt an mehreren URLs bereitzustellen.)
/social
in Ihrem Beispiel mit 404 zu antworten .