Přesměrování adres starého webu na nové pomocí .htaccess
- ufik
- Člen | 14
Zdravím, potřeboval bych zadat do souboru .htaccess pravidla pro přepsání adres ze starého webu, ovšem Nette vše směřuje k sobě a řeší si to pomocí route. Neřešil jste někdo tento problém, když to opravdu nechcete v routách, ale přes apache?
______Konečné řešení problému_____
RewriteCond %{QUERY_STRING} ^lang=cs$
RewriteRule ^index\.php$ /uvod/? [R=301,L]
Níže popsaná rada funguje pouze pro adresy bez parametrů. Takže je nutné detekovat pomocí podmínky dané parametry a poté již správně směrovat.
Editoval ufik (18. 7. 2013 12:13)
- Jiří Nápravník
- Člen | 710
Dej si ty staré adresy, co chceš nad tu co směruje vše na index.php. A za ní dej do do hranaté závorky ještě L, to dělá, že se bere jako poslední pravidlo.
Či-li např.:
RewriteRule stara-adresa nova-adresa [R=301,L]
#tohle pujde na nette
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
- ufik
- Člen | 14
Ahoj, díky moc za odpověď. Toto jsem také zkoušel, ale bez očekávaného výsledku. Musím dělat někde nějakou botu, ale netuším kde. Níže dávám příklad jednoho řádku, jestli by jsi se mohl podívat, kde ta chyba je. Děkuji.
RewriteRule ^http://www\.domena\.cz/index\.php?lang=cs$ http://www.domena.cz [R=301,L]
Editoval ufik (18. 7. 2013 10:27)
- petr.pavel
- Člen | 535
Otazník má v regulárních výrazech zvláštní funkci, takže ho musíš
neutralizovat zpětným lomítkem.
Být tebou si o nich něco naštuduju, protože pak bys nejspíš mohl ten
svůj seznam zredukovat.