PHP - Header("Location") funkar olika på olika servrar

Permalänk
Medlem

PHP - Header("Location") funkar olika på olika servrar

Vid utveckling av min sida så har jag fram till nu använt mig av WAMP för att köra webbhost lokalt på datorn. Nu har jag precis satt upp en webbhost på min NAS för att hosta min sida live i LAN:et, men även för att ha en utvecklingsversion uppsatt på NAS:en. Men min redirect kod funkar inte förutsenligt på NAS:en.

Header("Location: /login");

Mappstrukturen:
issuetracker/
issuetracker/index.php
issuetracker/login/
issuetracker/login/index.php

På datorn utgår detta från issuetracker/ mappen medan det på NAS:en utgår från den faktiska webbhostens rotmapp.

Behöver jag ställa någon serverinställning för att detta ska fungera?
Finns det något bättre sett att göra det på?

Visa signatur

www.fckdrm.com - DRM år 2025? Ha pyttsan.

Permalänk
Medlem

Location: /login kommer säga åt klienten att navigera till den absoluta sökvägen /login. Om det inte är dit du vill utan du vill till exempelvis /test/login behöver du antingen lägga på prefixet /test eller använda en relativ sökväg (ex: Location: ../login).

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Medlem

Uppdaterade första inlägget med mappstrukturen (borde ha haft det från början).

Skrivet av LemonIllusion:

Location: /login kommer säga åt klienten att navigera till den absoluta sökvägen /login. Om det inte är dit du vill utan du vill till exempelvis /test/login behöver du antingen lägga på prefixet /test eller använda en relativ sökväg (ex: Location: ../login).

Det lustiga är att på datorn får jag följande;
/login och ../login -> issuetracker/login (korrekt)
/issuetracker/login -> issuetracker/issuetracker/login
../issuetracker/login -> issuetracker/issuetracker/login

På NAS:en blir det följande;
/login -> IP-adressen/login
../login -> IP-adressen/login
/issuetracker/login -> IP-adress/issuetracker/login (korrekt)
../issuetracker/login -> IP-adress/issuetracker/login (korrekt)

Hoppas det är tillräckligt tydligt.

Visa signatur

www.fckdrm.com - DRM år 2025? Ha pyttsan.

Permalänk
Medlem
Skrivet av ELF:

Uppdaterade första inlägget med mappstrukturen (borde ha haft det från början).

Det lustiga är att på datorn får jag följande;
/login och ../login -> issuetracker/login (korrekt)
/issuetracker/login -> issuetracker/issuetracker/login
../issuetracker/login -> issuetracker/issuetracker/login

På NAS:en blir det följande;
/login -> IP-adressen/login
../login -> IP-adressen/login
/issuetracker/login -> IP-adress/issuetracker/login (korrekt)
../issuetracker/login -> IP-adress/issuetracker/login (korrekt)

Hoppas det är tillräckligt tydligt.

Det ser ut som att du fått in någon party-konfiguration i webbserver eller PHP som slänger på issuetracker/ som prefix på datorn men inte på NAS:en. Hur ser headern som kommer fram till klienten ut om du bara har header('Location: /login') i koden? Om min teori stämmer borde det se ut så här på NAS:en, men inte på datorn.

(F12 + nätverksfliken för att inspektera headers i request och response)

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Medlem

Stor facepalm.
Löste det nu genom att tänka ett steg längre än vad näsan räcker.
Det beror ju på att jag bara skriver issuetracker för att ansluta till sidan på datorn medan jag på NAS:en först måste ange IP/issuetracker. Det är ju ändå mest korrekt att ange localhost/issuetracker för att ansluta till sidan på datorn och då fungerar Header("Location: /issuetracker/login") både på NAS:en och datorn.

Visa signatur

www.fckdrm.com - DRM år 2025? Ha pyttsan.

Permalänk
Medlem

Tack i alla fall @LemonIllusion
Du kickade mig ändå i rätt riktning

Visa signatur

www.fckdrm.com - DRM år 2025? Ha pyttsan.