Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: .htaccess przyjazne linki problem
Forum PHP.pl > Forum > Gotowe rozwiązania
lukiz88
Witam.
Mam pewien problem z plikiem .htaccess.
Stworzyłem przyjazne linki.
Linki zawierające jedną zmienną działają bez problemu np.
  1. RewriteRule serwisy.html$ ?funkcja=1

Link z wieloma zmiennymi np taki:
  1. RewriteRule ^serwis/(.*)/(.*)$ ?funkcja=5&autor=$1&serwis=$2

działa lecz po wywołaniu go wszystko się psuje.
To znaczy link dodaje się do aktualnego linku.
np najpierw mamy:
www.strona.pl/serwisy.html z jedną zmienną
www.strona.pl/serwis/admin/Wirtualna_Polska_-_www.wp.pl z wieloma zmiennymi

i po tym wywoła się np. ten pierwszy:
www.strona.pl/serwisy.html

to połączy te linki i link będzie wyglądał tak
www.strona.pl/serwis/admin/serwisy.html

usuwa ostatni i dodaje link, po kolejnym wywołaniu znów usunie ostatni i doda następny i tak bez końca.

Mam nadzieje że mi pomożecie.
Zdunek
Cytat(lukiz88 @ 25.11.2009, 22:56:44 ) *
Witam.
Mam pewien problem z plikiem .htaccess.
Stworzyłem przyjazne linki.
Linki zawierające jedną zmienną działają bez problemu np.
  1. RewriteRule serwisy.html$ ?funkcja=1

Link z wieloma zmiennymi np taki:
  1. RewriteRule ^serwis/(.*)/(.*)$ ?funkcja=5&autor=$1&serwis=$2

działa lecz po wywołaniu go wszystko się psuje.
To znaczy link dodaje się do aktualnego linku.
np najpierw mamy:
www.strona.pl/serwisy.html z jedną zmienną
www.strona.pl/serwis/admin/Wirtualna_Polska_-_www.wp.pl z wieloma zmiennymi

i po tym wywoła się np. ten pierwszy:
www.strona.pl/serwisy.html

to połączy te linki i link będzie wyglądał tak
www.strona.pl/serwis/admin/serwisy.html

usuwa ostatni i dodaje link, po kolejnym wywołaniu znów usunie ostatni i doda następny i tak bez końca.

Mam nadzieje że mi pomożecie.

w headzie strony dodajesz:
<base href="adres strony" />
chociaż znacznik stary i rzadko używany

a tak poza tym, odnośnie tego co wyżej dałeś z htaccess, ja proponuję router użyć(mniej kodu htaccess, a jak jeszcze będziesz wrzucał na serwer gdzie np. nie można używać .htaccess, to na pewno to docenisz biggrin.gif )
http://forum.php.pl/index.php?showtopic=67510

Edit: a oto moja super uproszczona funkcja routera biggrin.gif
  1. private function ParseUrl() {
  2. $request_uri = $_SERVER['REQUEST_URI'];
  3. $path = $this->base_url.$this->index_page;
  4. $parsed_uri = explode("/", $request_uri);
  5. $i = 0;
  6. foreach(explode("/", $path) as $segment){
  7. if (isset($parsed_uri[$i]) and $segment == $parsed_uri[$i]){
  8. $i++;
  9. }
  10. }
  11.  
  12.  
  13. $parsed_uri = array_slice($parsed_uri, $i);
  14. return $parsed_uri;
  15. }

$this->base_url to adres strony bez index.php
a public $this->index_page to czy jest index.php czy nie ma(ew. coś jeszcze innego)
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.