Witam,
mam problem z mod_rewrite na WebServ (najnowszy, chyba 2.1), ponieważ nie wszystkie flagi działają jak trzeba. Kod i opis:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/strona/[a-z]{2}/?$ [NC]
RewriteRule ^([a-z]{2})/? /strona/index.php?lang=$1 [NC,L]
RewriteRule ^([^-][a-z0-9\-]{2,})/?(/([^-][a-z0-9\-]+))?/?(/([^-][a-z0-9\-]+))?/?$ /strona/index.php?one=$1&two=$3&three=$5 [NC,L]
RewriteRule ^ /strona/ [NC,R,L]
Strona WWW znajduje się w podfolderze "strona", więc tymczasowo muszę dodawać "/strona/" do linków. Działanie jest(powinno być) takie:
-
Sprawdzam czy ciąg po slashu to "2 znaki [a-z]" (np.: http://strona.pl/en) - jeżeli tak to linkuję do index.php?lang=en I TUTAJ NIE DZIAŁA FLAGA "L" - są wykonywane kolejne kroki
-
Sprawdzam czy ciąg to "/cos[/cos[/cos]]", bądź prościej **[http://strona.pl/cos], [http://strona.pl/cos/cos] **lub [http://strona.pl/cos/cos/cos] I TUTAJ TEŻ NIE DZIAŁA FLAGA "L" - po poprawnym wykonaniu reguły przechodzi do kolejnej.
-
Jeżeli poprzednie reguły się NIE sprawdzą to przejdź na stronę główną (to jakby jakiegoś linku nie było np.: http://strona.pl/bledny-link).
Mimo, to reguły wykonują się po kolei (poza wersją gdzie warunek **RewriteCond **nie został spełniony). Co ciekawe sprawdzałem działanie flag S=2, PT i nic się nie stało. Co mam zrobić żeby działało wszystko tak jak chcę?