Peter Schütt, 2022-12-22 08:45:
[...]
Beachte das "/" am Ende beim Aufrufen der ursprünglichen URL!
Variante 1:
https://pstt.de/peprpg/index
Das leitet weiter zu <
https://pstt.de/peprpg/general/>, keine
Endlosschleife.
ALT:
https://pstt.de/peprpg/index
NEU:
https://pstt.de/peprpg/general
Variante 2:
https://pstt.de/peprpg/index/
Hier gibt es die Endlosschleife:
ALT:
https://pstt.de/peprpg/index/
NEU:
https://pstt.de/peprpg/index/general
ALT:
https://pstt.de/peprpg/index/general
NEU:
https://pstt.de/peprpg/index/general/general
ALT:
https://pstt.de/peprpg/index/general/general
NEU:
https://pstt.de/peprpg/index/general/general/general
usw...
Warum? Weil der Browser den letzten Teil "/index/" nicht mehr mit
"general/" ersetzt, sondern einfach nur "general/" anhängt - es ist ja
eine *relative* URL und keine absolute. Und "relativ" bedeutet, dass die
URL, wenn sie mit "/" endet, den angegebenen Pfad angehängt bekommt.
Weiterhin liefert <
https://pstt.de/peprpg/index/general/> keinen
404-Fehler, sondern exakt das selbe Dokument wie ohne "/general/" am Ende:
| $ curl -v -s
https://pstt.de/peprpg/index/general/ 1> /dev/null
| * Trying 185.30.32.84:443...
| * Connected to
pstt.de (185.30.32.84) port 443 (#0)
| * schannel: disabled automatic use of client certificate
| * ALPN: offers http/1.1
| * ALPN: server accepted http/1.1
| > GET /peprpg/index/general/ HTTP/1.1
| > Host:
pstt.de
| > User-Agent: curl/7.83.1
| > Accept: */*
| >
| * Mark bundle as not supporting multiuse
| < HTTP/1.1 200 OK
| < Server: nginx
| < Date: Thu, 22 Dec 2022 12:40:07 GMT
| < Content-Type: text/html; charset=UTF-8
| < Content-Length: 404
| < Connection: keep-alive
| < Vary: Accept-Encoding
| <
| * Connection #0 to host
pstt.de left intact
Vermutlich hast Du die "Content-Length: 404" irrtümlich als "Fehler 404"
angesehen, das ist aber nur die Anzahl der zurückgesendeten Bytes für
den Inhalt, die Zufällig 404 Bytes beträgt.
Warum das so ist, kann ich auf Anhieb nicht sagen. Dazu müsste man die
genaue Konfiguration des Webservers (NGINX) kennen.
Eine mögliche Lösung wäre, bei der Weiterleitung einfach die komplette
URL anzugeben:
<meta http-equiv="refresh" content="0; url=/peprpg/general/">
Dann ist es egal, ob man <
https://pstt.de/peprpg/index> oder
<
https://pstt.de/peprpg/index/> aufruft, da der Browser in jedem Fall
immer den kompletten Pfad "/peprpg/index" oder "/peprpg/index/" durch
"/peprpg/general/" ersetzt und nicht versucht etwas an den Pfad anzuhängen.