Portál AbcLinuxu, 12. května 2025 13:40
RewriteEngine On RewriteRule nazevB nazevAjenze to nefunguje (predchozi je na zacatku konfiguraku, hned po direktive NameVirtualHost a je mimo jakykoli Virtualhost). Diky, David
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^www.fotkyzcest.cz RewriteRule ^(.*)$ http://www.fotkyzcest.net/$1 [R=301,QSA,L] </IfModule>
wwww.nazevB.domena.cz na www.nazevA.domena.cz nazevB.domena.cz na nazevA.domena.cz tonda.nazevB.domena.cz na tonda.nazevA.domena.cz nazevB.domena.cz/neco na nazevA.domena.cz/necoatp.
Mod_rewrite umí měnit i část před lomítkem, pak nejde o podsunutí stránky, ale o přesměrování, viz ten můj příklad a [R=301]. Ale to co chcete není asi moc obvyklé a nikdo si taková pravidla zatím nepsal, takže nezbyde než si potrápit mozkové závity sám. Zkuste se podívat sem:
http://interval.cz/serialy/mod-rewrite-pro-hezka-url/
http://www.jakpsatweb.cz/server/mod-rewrite.html
http://www.jakpsatweb.cz/server/mod_rewrite/mod-rewrite-priklady.html
RewriteRule je samotné pravidlo a RewriteCond umožní pravidlo provést při splnění určité podmínky (podmínek), v obojím se používají regulární výrazy (.* je jakýkoliv text, ^ je začátek řádky). Zkuste se odrazit od:
RewriteCond %{HTTP_HOST} !^.*nazevB.domena.cz RewriteCond %{HTTP_HOST} ^(.*)nazevA.domena.cz RewriteRule ^(.*)$ http://%1nazevB.domena.cz/$1 [R=301,QSA,L]
Je to co mě teď napadlo, tedy jen nasměrování bez záruky. První RewriteCond testuje, jestli už jdu na nazevB.domena.cz, pokud ano, končím (je tam !). Následuje AND a druhé RewriteCond testuje, jestli je v HTTP_HOST nazevA.domena.cz a jestli mu i něco předchází, pokud ano, díky () si zapamatuje (mělo by být v %1, to právě nevím) co předchází a jde na RewriteRule. Tam si jen zapamatuju co je za lomítkem (budu to mít v $1) a provedu složení výsledného url a přesměrování (R v hranatých závorkách je přesměrování, QSA připojí parametry předávané pomocí GET a L značí poslední pravidlo).
Zkuste sem pak ty pravidla dát, ať je řešení navždy v archivu.
VirtualHost * ServerName *.nazevA.domena.cz RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)nazevA\.domena\.cz [NC] RewriteRule ^/(.*)$ http://%1nazevB.domena.cz/$1 [R=301,QSA,L] /VirtualHostTakze to Jenik: s tim %1 si mel pravdu, moc dekuju. Bohuzel mi apache bezi tak 2min a pak padne :(. Bez tohohle virtualhostu bezi normalne, tezko rict, jestli je problem v tom virtual hostu, ci je problem v apache (neni distribucni, ale kompilovany).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.