Portál AbcLinuxu, 6. května 2025 22:56

Dotaz: mod_rewrite se zmenou adresare dle domeny 3.radu

10.3.2009 13:04 Tomyx
mod_rewrite se zmenou adresare dle domeny 3.radu
Přečteno: 309×
Odpovědět | Admin
Dobry den, mam, alespon doufam trivialni problem s presmerovanim mod_rewrite. Zkousim zmenit url adresy z tvaru "example.com/index.php?page=33" na "example.com/hlasovani/33.html" coz mi funguje bez problemu podle kodu v .htaccess :

RewriteEngine On

RewriteBase /

RewriteCond %{QUERY_STRING} ^page=([^&]+)$

RewriteRule ^index\.php$ hlasovani/%1.html? [R=301,L]

RewriteRule ^hlasovani/([^/]+)\.html index.php?rw=1&page=$1 [L,QSA]

Jenomze bych potreboval udelat upravu pro vsechny domeny 3.radu (odlisujici se jazykem), aby se z "cs.example.com/index.php?page=33" presmeroval na "example.com/hlasovani/33.html" , ale v pripade anglicke verze z "en.example.com/index.php?page=33" presmeroval na "en.example.com/polls/33.html" a pak aby se url adresa v pripade zmeny jazyka zmenila napr. z "en.example.com/polls/33.html" na "example.com/hlasovani/33.html" po prepnuti jazykove verze z ceske na anglickou. Dekuju za jakoukoliv radu. Vsechny domeny 3.radu i ta 2.radu je na stejnem hostingu a ve stejnem www adresari, tudis maji stejny i soubor .htaccess
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.3.2009 13:34 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: mod_rewrite se zmenou adresare dle domeny 3.radu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mě se zdá, že se nezkoušíš změnit "example.com/index.php?page=33" na "example.com/hlasovani/33.html", ale naopak.

Část URL s názvem serveru můžeš matchovat pomocí RewriteCond podobně, jako to již děláš s QUERY_STRING. Viz manuál.

Je zajímavé, že u těch RewriteRule nemáš lomítko na začátku...
10.3.2009 14:02 Tomyx
Rozbalit Rozbalit vše Re: mod_rewrite se zmenou adresare dle domeny 3.radu
Takhle mi to funguje:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} ^cs.exemple.com

RewriteCond %{QUERY_STRING} ^page=([^&]+)$

RewriteRule ^index\.php$ hlasování/%1.html? [R=301,L]

RewriteRule ^hlasování/([^/]+)\.html index.php?rw=1&page=$1 [L,QSA]

Ted jeste prosim poradte, jak presmerovat pri prepnuti jazyka z napr. en na cz, tj. z "en.example.com/polls/33.html" na "cs.example.com/hlasování/33.html"

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.