Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z mod_rewrite
Forum PHP.pl > Forum > Przedszkole
kkowalskipl
Witam, potrzebuję zrobić obsługe mod_rewrite przy takiej konstrukcji:
http://127.0.0.1/framework/index.php?contr...mp;action=index

i wymieniane Index i index

Zrobiłem tak:
Options FollowSymLinks
RewriteEngine On

RewriteRule ^([^-]+)/([^-]+)$ index.php?controller=$1&action=$2 [L]

I przy kontrukcji gdzie mam sztywno Index/index, Index/register itd jest ok, ale mod_rewrite musi obslugiwac tez to gdy slash jest na koncu np Index/index/ czyli i tak i tak. Dodatkowo zmienna controller moze wystapic sama, bez action co tez musi zostac obsluzone. controller i action moga zwierac tylko litery(male i duze) i cyfry.
!*!
Może coś w tym stylu:
Cytat
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)?\/?$ index.php?controller=$1&action=$2 [L]
kkowalskipl
ok, działa z tym slashem, ale co jeśli controller wystepuje sam? wtedy nie znajduje drugiej zmiennej i jest 404 co zrobic?
!*!
Co znaczy że wpisujesz sam? Chodzi Ci o sytuacje gdy URI niczego nie zawiera?

Cytat
RewriteRule ^([a-zA-Z0-9]+)?\/?([a-zA-Z0-9]+)?\/?$ index.php?controller=$1&action=$2 [L]


? - oznacza że może wystąpić lub nie.
kkowalskipl
Zrobiłem tak:
RewriteRule ^([a-zA-Z0-9]+)/?([a-zA-Z0-9]+)?/?$ index.php?controller=$1&action=$2 [L]

i już działa. Dzieki za pomoc smile.gif

A tak w ogóle to czemu dałeś backslash przed slashem u siebie w przykładzie? bez też działa...hm??
!*!
Z przyzwyczajenia, odnośnie wyrażeń regularnych, znaki specjalne poprzedza się backslashem, jednak nie jest to wymagane.
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.