.htaccess Przekierowanie adresu na wersję językową

0

Mój .htaccess

RewriteEngine On
RewriteBase /


RewriteCond %{QUERY_STRING} !lang=(pl|en|de)
RewriteRule ^$ pl/ [R=301,L]

RewriteRule ^(pl|en|de)$  $1/ [R=301,L]

RewriteRule ^(pl|en|de)/(.*)$  index.php?lang=$1&url=$2 [L]

Co chcę uzyskać.
Wszystkie linki bez sprecyzowanego języka przekierować na wersję pl
**www.mojadomena.pl ** -> www.mojadomena.pl/pl/

Gdy już odnajdę wersję językową chcę to wszystko przekierować na index.php, tak aby
pierwszym parametrem był język lang=$1, a drugim reszta co tam w linku się znajduje url=$2

Oczywiście chce aby rozszerzenia były ukryte i nie występowały w finalnym linku.

Problem
Nie wiem dlaczego, ale podczas sprawdzania dla adresu
localhost/test

przekierowuje mnie na
http://localhost/C:/htdocs/test/pl/

Chciałbym również nieco "udoskonalić" powyższy htaccess, tak abym nie musiał dokładnie precyzować wersjii językowych (bo jak chce teraz np dodać wersję włoską - it - to i tak nie zadziała, bo nie została ona wspomniana w żadnej z reguł)

3

Coś takiego?

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} !lang=(..)
RewriteRule ^$ pl/ [R=301,L]

RewriteRule ^(..)/(.*)$  index.php?lang=$1&url=$2 [L]
RewriteRule ^(..)$  $1/ [R=301,L]

A odnośnie localhosta, skonfiguruj sobie w apaczu i hosts domenę test.loc, przypisz do niej katalog test i będziesz mogła lokalnie symulować identyczne warunki działania jak pod prawdziwą domeną w necie. Bez tego, przy odpalaniu z podkatalogu localhost/cośtam będą się zawsze jakieś cuda robić.

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