2012-05-10 19 views
21

Czy ta pozycja względna lokalizacja nagłówek html jest absolutnie kompatybilny ze wszystkimi przeglądarkami na wszystkich platformach? Jakieś standardy?Nagłówek Lokalizacja względna ścieżka kompatybilności

Location: some_script.php?la=2&po=2030 

To znaczy, czy zawsze przekierowuje do some_script.php w bieżącym katalogu, czy nie?

+0

jak to PHP, przeglądarka będzie nawet nie wiedzieć o nagłówku, to po prostu jej nie zauważa jest przekierowywany, ponieważ PHP jest wykonywane na serwerze. – 11684

+3

@ 11684: Przeglądarka klienta bezwzględnie otrzyma nagłówek Location. Jak inaczej myślisz, że zdecyduje się zmienić swoją lokalizację? – webbiedave

+1

@ 11684 Twoje zło. PHP jest wykonywane na serwerze, tak. Ale PHP wysyła nagłówek do przeglądarki (klienta), a klient robi to, co chce. –

Odpowiedz

17

Standardowa byłoby to:

header('Location: http://www.mywebsite.com/yourpage.php?id=32', TRUE, 302); 

Ale odpowiedzi na swoje pytanie, tak nastąpi przekierowanie do strony X w bieżącym folderze, jeśli nie umieścić ukośnik na początku lub kompletnego adresu URL.

Oto pomysł, który proponuję zrobić dla każdej witryny, którą wykonujesz. W swoim pierwotnym pliku (głównego pliku php użyć jak config lub cokolwiek), tworzyć coś takiego:

define('URL', 'http://www.mywebsite.com/'); 

Więc podczas tworzenia przekierowania, link lub cokolwiek, to zrobić:

header('Location: '.URL.'yourpage.php?id=32', TRUE, 302); 

EDYCJA: Listopad 2017 r. Jak wskazano poniżej @jordanbtucker, specyfikacja HTTP została zaktualizowana w czerwcu 2014 r. (Ten post pochodzi z 2012 r.), Aby umożliwić względne identyfikatory URI w nagłówku Lokalizacja.

+1

Tak, już używam ** relatywny ** wariant i jego praca dla mnie, ale wątpię, żeby to nie działało dla wszystkich użytkowników. Mogę dodać część adresu URL, aby uzyskać absolutną ścieżkę, ale spowoduje to pewne problemy podczas debugowania tego sctipt na komputerze lokalnym, ponieważ na stronie my some_script.php zawsze pod adresem http://domena.com/some_script.php i nie jest to problem z dodaniem adresu SERVER_HOST do adresu URL, ale w lokalnym skrypcie komputera w podfolderze ... – abrahab

+1

Ok. Następnie sugeruję, aby zajrzeć na http://tools.ietf.org/html/rfc2616#section-10.3.3. Dobrym sposobem, najlepszym sposobem i sposobem działania jest podanie pełnego adresu URL. –

+0

@abrahab Nie wiem, dlaczego tworzenie pełnego adresu URL w podfolderze komputera lokalnego jest problemem? –

Powiązane problemy