Autor Zpráva
prosim
Profil *
Ahoj můžete mi prosím někdo poradit jak přesměrovat vše ze staré domény na novou a to včetně subdomén?

Mám doménu example.com (a.example.com, example.com?id=1, a.example.com?id=1, atp.) a potřebuji to přesměrovat (nejlépe pomocí .htaccess)
na doménu example.cz (a.example.cz, example.cz?id=1, a.example.cz?id=1, atp.).

Prostě aby tam zůstali všechny subdomény, parametry a složky.
Děkuji za pomoc.
Darker
Profil
Co takhle vzít request url a nahradit v něm example.com (první výskyt) za example.cz?
prosim
Profil *
Darker:
To moc nechápu. Myslíš něco takového: RewriteCond %{HTTP_HOST} ^example.cz
Davex
Profil
Viz JPW: mod_rewrite - Podmínky RewriteCond - přesměrování staré domény na novou.
prosim
Profil *
Davex:
To je skoro to co jsem hledal. Díval jsem se na tu stránku, ale nějak jsem to tam přehlédl.

Jediný problém je, že to nefunguje se subdoménami. Nevíš prosím jak to upravit?
Nebo to musím zkopírovat do všech subdomén?
prosim
Profil *
Když dám toto (a.example.com):
RewriteCond %{HTTP_HOST} ^(.*).example.com [NC]
RewriteRule ^(.*)$ http://$1.example.cz/$1 [R=301,QSA,L]

tak to přesměruje na .example.cz místo a.example.cz -> vynechá to tu subdoménu.
Davex
Profil
Hodnota podvýrazu z podmínky RewriteCond se ukládá do proměnné %1. V proměnné $1 je hodnota podvýrazu z příslušného pravidla RewriteRule.
prosim
Profil *
Davex:
Aha. Děkuji moc.
Zatím to vypadá, že funguje přesně tak jak potřebuji.

Takže kdyby někdo potřeboval, tak tady je celý kod.
RewriteEngine  On 

RewriteCond %{HTTP_HOST} ^(.*).example.com [NC]
RewriteRule ^(.*)$ http://%1.example.cz/$1 [R=301,QSA,L]
Davex
Profil
prosim:
Ještě mě napadlo, že pokud by v parametrech byly escapované znaky (např. ?co=ředkvičky ~ ?co=%c5%99edkvi%c4%8dky), tak je dobré přidat přesměrovávacímu pravidlu příznak [NE], aby se přesměrovalo na původní hodnoty a neescapovalo se ještě jednou.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0