Autor Zpráva
brouzdalek
Profil *
Dobry den,
potreboval bych poradit s mod_rewrite. Jedna se mi o vicejazycny web. Hlavni myslenka je mit podstrcenou URL adresu ve tvaru: http://localhost/web/cs pro cesky jazyk (pro dalsi jazyky obdobne). Kdyz tedy uzivatel klikne na odkaz s adresou href="cs", mela by se mu podstrcit prave tato stranka; ve skutecnosti, ale vidi pouze statickou misto dynamicke. Ta vypada nejak takto: http://localhost/web/index.php?lang=cs.
V souboru .htaccess jsem vytvoril toto:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^([*/]+)([cs|en|de])$
RewriteRule ^(.*)$ %1/index.php?lang=%2 [L]


Ssamozrejme, ze mi to nefunguje, porad se s tim trapim. Pres Google se neco najde, ale zadna slava, a hlavne kvalita. Prosim o radu, diky moc!

Moderátor Davex: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Davex
Profil
brouzdalek:
Regulární výraz v podmínce je určitě špatně.

Na tom webu bude jen jedna stránka nebo jich bude víc? Jaká bude struktura URL pro všechny stránky a ten skript index.php je jen v adresáři /web/?
brouzdalek
Profil *
Bude jich samozřejmě více. Vždy bude nejprce jazyk, pak další parametry. Stačí mě nasměrovat nebo pomoci s jedním příkladem, dál se snad chytnu :)
Pokud jsem to pochopil správně, tak po zapnutí mod_rewrite testuji podmínku- RewriteCond, a to konkrétně URL adresu. Procházím v ní jednotlivé úrovně folder1/folder2/... 1--nekonecno a na závěr je poslední "adresář" - a to jazyk - ve skutečnosti je to ale jenom parametr dynamické adresy.
Tu část před jazykem pak používám dále pomocí %1 - jak je tady na webu uvedeno v příkladu, včetně i vybraného jazyka - %2.
Davex
Profil
Nevím, jak budou ty URL vypadat, ale například takto se dá vyzobnout část URL a jazyk z konce URL:
RewriteEngine On
RewriteRule ^(.+)/(cs|en|de)/?$ /web/index.php?cesta=$1&lang=$2 [L]
brouzdalek
Profil *
OK, fajn, díky moc.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: