Header Location Umleitungsfehler
MB
- htaccess
- php
moin community,
ich arbeitete intensiver mit header()
in meiner App auf XAMPP. Jedes mal wenn ich die header()
mit Location auf meine App redirecte http://localhost:80/app/
, passiert ein Umleitungsfehler. Chrom brabbelt da:
ERR_TOO_MANY_REDIRECTS
Wenn ich die Fehlermekldung richtig interpretiere ist das ein dauer umleiter. Aber ich kann es nicht begreifen weil ich nichts dauerhaft umleite. komischerweise bei http://localhost:80/
leitet er schölen brav an die adresse weiter. Aber sobald ich irgendwas in meiner App aufrufe, geschieht ein "Umleitungsfehler" 😕.
Mögliche Fehler Eingrenzung:
Eine .htaccess
Dateien leiten immer zur index.php
in der App.
lg MB
Hi,
guck mal in die Netzwerkkonsole, da siehst Du wo es loopt.
MfG
hi pl,
ahso. Gute Idee! besten dank! wo liegt die den? Sry, ich hab zu meinem bedauern von XAMPP wenig Ahnung. Ich weis nur das nötigste 😕.
lg mb
hallo
hi pl,
ahso. Gute Idee! besten dank! wo liegt die den? Sry, ich hab zu meinem bedauern von XAMPP wenig Ahnung. Ich weis nur das nötigste 😕.
Die liegt im Browser bei den Browsertools.
Ohne deine htaccess zu kennen, können wir dir nicht helfen.
moin beatovich,
Hier die Ordnerstruktur symbolisiert mit "+" mit .htaccess
und PHP-Dateien symbolisiert mit (-)
+ webapp
+ app
+ public
+ css
+ img
- .htaccess
- index.php
+ system
- .htaccess
Hier die .htaccess auf der webapp-Oberfläche
<IFModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IFModule>
Hier die auf der public-Oberfläche
<IFModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [PT,L]
</IFModule>
hoffe es hilft
lgmb
hallo
moin beatovich,
Hier die Ordnerstruktur symbolisiert mit "+" mit
.htaccess
und PHP-Dateien symbolisiert mit (-)+ webapp + app + public + css + img - .htaccess - index.php + system - .htaccess
Hier die .htaccess auf der webapp-Oberfläche
<IFModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IFModule>
Hier die auf der public-Oberfläche
<IFModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [PT,L] </IFModule>
PT steht für passthrough, was bewirkt, dass die URI nochmals durchgeschleusst wird. Das kann die Ursache für endlose Rekursionen sein
Beispiel
RewriteRule ^index.php$ index.php [PT,L]
sollte das Problem klarmachen.
hmm, ich habs so wie du gemacht. immer noch nach wie vor umleitungsfehler 😕.
hallo
hmm, ich habs so wie du gemacht. immer noch nach wie vor umleitungsfehler 😕.
Und was hast du gemacht: Den expliziten Fehler nachgestellt?
Versuche lieber mal das.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
QSA hängt den QueryString an, falls vorhanden.
saust er immer zum internen XAMPP eigenen dashboad hin 😕. Ich möchte den Pfad noch erwähnen wo meine webapp is: xampp/htdocs/webapp/
hi MB,
zum Debuggen bitte in die Browserkonsole/Netzwerktab schauen wo die Requests hinlaufen.
Zu Deine .htaccess: IFModule mod_rewrite.c
schön und gut aber was machst Du wenn mod_rewrite
nicht geladen ist -- Alternative für die Konfiguration?
Btw.:
RewriteRule ^(.*)$ index.php [PT,L]
da fehlt ein Slash, es muss heißen /index.php
Tipp: Zum Debuggen schalte Rewrite ab! Und fange stattdessen den Request über die ErrorDocument Directive ab. z.B.:
ErrorDocument 404 /index.php
und den Blick in die Konsole dazu!
Viel Erfolg!
nabend pl,
also. Auf deine Anweisungen hin spukt die Browser-Konsole da bei mir folgendes aus. Erst einmal zig gleiche GET's.
GET http://localhost/webapp/en/default/main/index
wenn ich dann ein GET näherbetrachte ...
Angefragte Adresse: http://localhost/webapp/en/default/main/index
Anfragemethode:
Externe Adresse: [::1]:80
Status-Code: 302
Version: HTTP/1.1
und dann noch die kopfzeile untersuche ...
Antwortkopfzeilen (427 B)
Cache-Control: no-store, no-cache, must-revalidate
Connection: Keep-Alive
Content-Length: 192
Content-Type: text/html; charset=UTF-8
Date: Sun, 22 Jul 2018 20:23:35 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive: timeout=5, max=100
Location: http://localhost:80/webapp/en/default/main/index
Pragma: no-cache
Server: Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/7.1.6
X-Powered-By: PHP/7.1.6
Anfragekopfzeilen (401 B)
Accept: text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: de,en-US;q=0.7,en;q=0.3
Connection: keep-alive
Cookie: PHPSESSID=i3mr709bvgnm7mbnj3b768mu3c
Host: localhost
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/61.0
... komt das dabei raus. Schlauer bin ich aber noch nicht geworden 😕
lgmb
Na,
Location: http://localhost:80/webapp/en/default/main/index
zeigt doch, daß bei einem Request auf dieselbe Location eine Endlosschleife vorliegt.
MfG
hi pl,
ok, dh das ist ein ein geschlichender Bug in meinen PHP Skripten oder? Auf jeden fall vielen Herzlichen Dank dafür. Du hast mir echt weiter geholfen.
lgmb
hi MB,
das knn ja gar nicht anders sein. Also irgendwo wird da ein Location-Header angewiesen oder die Serverkonfiguration ist verstrubbelt.
Tipp: Bevor Du einen header("location:..")
anweist, setze einen Status, z.B. header("HTTP/1.1 302");
oder einfach header("Status: 302");
damit Du das in der Konsole besser findest. Also einen Statuscode der sich von dem unterscheidet den der Webserver spontan setzen würde.
MfG