Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mod_rewrite
Forum PHP.pl > Forum > Serwery WWW
sawic
Witam.
Przynaje się bez bicia, że te wyrażenia regularne to dla mnie ciemna magia.
Mam taką stronę:

www.strona.pl/index.php?page=podstrona1&page2=podstrona2

użyłem takiej regułki dla mod rewrite:

RewriteRule ^([a-zA-Z]+)/?$ index.php?page=$1 [NC]
(nie ma znaczenia wielkość liter, adres może się kończyć z / lub bez, działa zarówno stara wersja adresu, jak i nowa. Chyba ta regułka jest ok ?)

i uzyskałem adres w postaci:

www.strona.pl/podstrona1

OK, ale struktura mojego serwisu nie pozwala mi abym kolejne zmienne z $_GET mógł zastąpić przez mod rewrite. Jak to pisałem to o tym nie pomyślałem, a teraz to już za dużo zmieniać, tak więc chciałbym uzyskać adres w postaci:

www.strona.pl/podstrona1?page2=podstrona2

Przy czym tylko podstrona1 jest pewnikiem, kolejnych zmiennych może być dużo, albo i nie.
Niestety nie mogę znaleźć podobnego przykładu na internecie, gdyż jak już są jakieś przykłady to jak zamienić wszystko albo nic winksmiley.jpg

Jak zrobić, aby wszystko co zostanie wpisane po ?page=porstrona1 zostało dołączone na końcu linku jako ?page2=....$page3=.....$.... ?

Pozdrawiam
siemakuba
dodaj do RewriteRule flage QSA (QueryStringAppend).

Kod
RewriteRule ^([a-zA-Z]+)/?$ index.php?page=$1 [NC, QSA]


przy wywolaniu takie adresu:

www.strona.pl/podstrona1?page2=podstrona2&pan=samochodzik

rewrite zrobi z niego:

index.php?page=podstrona1&page2=podstrona2&pan=samochodzik


pozdr.
sawic
Witam.
Wielkie dzięki, już prawie działa.
Problem jest tego typu, że flagę mogę wpisać tylko [QSA], jak wpisze tak jak w proponowanym kodzie to niestety nie działa.
Druga sprawa to jeżeli zakończę adres /
czyli np:
www.strona.pl/podstrona1/
to potrzebna podstrona się otworzy, natomiast nie ładuje styli.
Czemu ten / na końcu tak to zmienia ?
Myślałem, że znak zapytania to załatwia.

Pozdrawiam
siemakuba
czołem,
co do flag - dziwne, powinno działać z dwiema flagami. Jednak, akurat w twoim przypadku brak flagi NC nie powinien miec znaczenia.

zajrzyj jeszcze tu: Apache mod_rewrite


Co do styli :)
Sciezke masz podana relatywna co? :) Daj absolutna, bedzie oke.
Kiedy jestes na stronie www.strona.pl/podstrona1/ i styl masz wpisany href="style/style.css" to on proboje sie ladowac z www.strona.pl/podstrona1/style/style.css zamiast z www.strona.pl/style/style.css

pozdr.
sawic
Cytat
Co do styli smile.gif
Sciezke masz podana relatywna co? smile.gif Daj absolutna, bedzie oke.
Kiedy jestes na stronie www.strona.pl/podstrona1/ i styl masz wpisany href="style/style.css" to on proboje sie ladowac z www.strona.pl/podstrona1/style/style.css zamiast z www.strona.pl/style/style.css


No tak właśnie myślałem.
Ale zmyliło mnie to, że bez "/" na końcu działa.

No muszę se o tym doczytać, bo aż wstyd, ale jakoś to dla mnie nie zrozumiałe no.

Dla mnie wyrażenia regularne to odpowiednik prawdopodobieństwa w matematyce.
Matma fajna, prawdopodobieństwo be winksmiley.jpg


Pozdrawiam
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.