Reguły mod_rewrite przy subdomenach

0

Nie mogę dojść do ładu z regułami mod_rewrite. Zmieniam sposób obsługi wielojęzyczności stronki na użycie sub-domen:
http://www.stronka.pl - wersja polska
http://en.stronka.pl - wersja angielska, itp.

Usiłuję zrobić przekierowanie na index.php?lang=xx, ale poniższa reguła nie działa.
RewriteRule ^(www.stronka.pl/rowery/l/(rowery)/?$ index.php?lang=$1&module=$2 [QSA,NC,L]
czyli po wpisaniu:
www.stronka.pl/rowery/ powinna uruchomić się stronka w j. polskim - moduł: rowery.

W logach apache pisze, że nie ma takiego katalogu (rowery) w /public/. Czyli to znaczy, że "rule" nie został spełniony... Może ktoś pomóc?

1

RewriteRule sprawdza Ci REQUEST_URI, nie cały adres razem z domeną.

Nieszczególnie bawiłem się z subdomenami w .htaccess ale raczej będziesz musiał użyć tego razem z RewriteCond i dla każdego języka pisać regułki od nowa, tj:

RewriteCond %{HTTP_HOST} ^en [NC]
RewriteRule ^(rowery)/$ index.php?lang=en&module=$2 [QSA,NC,L]

RewriteCond %{HTTP_HOST} ^de [NC]
RewriteRule ^(rowery)/$ index.php?lang=de&module=$2 [QSA,NC,L]

itd

1
dzek69 napisał(a)

RewriteRule sprawdza Ci REQUEST_URI, nie cały adres razem z domeną(...)

Podziękował dobry człowieku, już prawie monitor pogryzłem...

Może komuś się przyda:

RewriteCond %{HTTP_HOST} ^(en|de|pl)\.stronka\.pl$
 # set LANGUAGE variable
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]  
 # check if LANGUAGE is empty
RewriteCond %{ENV:LANGUAGE} ^$          
 # set default LANGUAGE 
RewriteRule (.*) - [QSA,E=LANGUAGE:pl]    
 # use LANGUAGE 
RewriteRule ^(rowery|narty|rolki)/?$ index.php?lang=%{ENV:LANGUAGE}&module=$1 [QSA,NC]

1 użytkowników online, w tym zalogowanych: 0, gości: 1