Přesměrování adres starého webu na nové pomocí .htaccess

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ufik
Člen | 14
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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.

ufik
Člen | 14
+
0
-

Máš pravdu (otazník i studium). Mockrát díky.

petr.pavel napsal(a):

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.