Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mod_rewrite] Problem z regułką
Forum PHP.pl > Forum > PHP
Sephirus
Witam. Normalnie nie zawracałbym nikomu głowy ale siedzę nad tym już jakąś chwilę...

Otóż mam w regułce wyrażenie typu:

Kod
strona/podstrona/(.+)/(.+)/(.*)/(.*)/(.+)


Przykładowo w takiej regułce:

Kod
RewriteRule ^strona/podstrona/(.+)/(.+)/(.*)/(.*)/(.+)$ index.php?a=$1&b=$2&c=$3&d=$4&e=$5 [L]


I teraz mam adres załóżmy:

strona/podstrona/1/2/3/4/5 - przechodzi (wszystko gra)

ale już

strona/podstrona/1/2///5 - już nie przechodzi (dokładnie rzecz biorąc reguła ta nie jest wg htaccess spełniona)

Mimo że zastosowałem .* czyli coś co być może ale nie musi to dla podanego adresu powyżej ta reguła nie działa... :/

Oczywiście jeśli wrzuciłbym bym to w PHPowy preg_match to śmiga (sprawdzałem) ale w htaccess nie chce...

Ktoś ma jakiś pomysł? :/
nospor
Zamiast
.*
spróbuj
.*?
Sephirus
Dzięki nospor ale niestety nic to nie zmieniło sad.gif
sf
Problem stanowi sam zapis. Nie można stosować dwóch / obok siebie. Adres www.wp.pl////// prowadzi do www.wp.pl/. Następne / są ignorowane. Dlatego wiele stron stosuje przecinki, a nie /.
Sephirus
Bingo! Dzięki @sf masz całkowitą rację - nie przemyślałem tego - dodatkowo sama . jest za mocna więc albo trzeba dać ? (ungreedy) - THX @nospor albo uzyć czegoś w rodzaju [^/]* tylko oczywiście / zamienić na inny znak - lub , 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.