Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przyjazne linki, a przekierowanie
Forum PHP.pl > Forum > Przedszkole
SlimShady
Hej,

Posiadam system friendly URL's oparty o RewriteRule, w którym formatuję mi adres z postaci:
gra.pl/index.php?page=logowanie&id1=coś&id2=coś,
do przyjaznej przeglądającemu:
gra.pl/logowanie/coś/coś.

Wszystko jest z nim w porządku, problem pojawia się w sytuacji, gdy chcę dokonać przekierowania przy użyciu nagłówków. O ile, gdy mam link zawierający 1 element np. gra.pl/rejestracja/ to poniższy kod:
  1. header('Location: start);

zamienia mi poprawnie adres na gra.pl/start/. Problem pojawia się gdy elementów jest więcej niż jeden, a skrypt jest trzymany w katalogu.
tzn. jeśli mam domyślnie adres: gra.pl/katalog_skryptu/logowanie/coś/
polecenie header('Location: start); przekształci mi link do postaci gra.pl/katalog_skryptu/logowanie/start/, a nie gra.pl/katalog_skryptu/start.

wiem, że mogę zastosować header('Location: /start'); - jednak to nadpiszę katalog, w którym znajduję się skrypt, a musi on także być dostosowany do trzymania w podkatalogu. myślałem o utworzeniu stałej, przechowującej adres URL i dodającej się, przy location, jednak nie satysfakcjonuję mnie ta metoda. czy to wszelkie możliwości?
erix
Musisz zastosować adresowanie bezwzględne, żeby czegoś takiego nie było.

Cytat
jednak to nadpiszę katalog, w którym znajduję się skrypt, a musi on także być dostosowany do trzymania w podkatalogu.

Nie rozumiem?

Cytat
myślałem o utworzeniu stałej, przechowującej adres URL i dodającej się, przy location, jednak nie satysfakcjonuję mnie ta metoda. czy to wszelkie możliwości?

To jest to samo, o czym pisałem na samym początku.
b4rt3kk
A może ustaw sobie odpowiednie Rewrite Base?
erix
RewriteBase, to nie od tego. tongue.gif
b4rt3kk
Cytat(erix @ 8.07.2013, 16:42:00 ) *
RewriteBase, to nie od tego. tongue.gif


Wiesz, kolega w pierwszym poście tak to opisał, że do końca nie wiem o co mu chodzi. smile.gif Ale sądząc po tym:

Cytat
gra.pl/katalog_skryptu/logowanie/start/, a nie gra.pl/katalog_skryptu/start/


Pomyślałem, że Rewrite Base na gra.pl/katalog_skryptu/ by pomogło.
gr56
mod_rewrite akurat nie ma tu nic do rzeczy.

Nie ma innej metody jak podanie absolutnej ścieżki jednak możesz ją dynamicznie stworzyć:
Kod
$baseUrl = dirname($_SERVER['REQUEST_URI']);

Kod
header('Location: ' . $baseUrl . '/start');
SlimShady
kolega gr56 dokładnie mnie zrozumiał, jednak zamiast przypisywania pełnej ścieżki, ustaliłem brak możliwości trzymania skryptu w pod katalogu wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.