Pár poznámek k mod_rewrite

Pár mnou celkem běžně používaných nastavení mod_rewrite. Kompletní dokumentaci najdete v oficiální dokumentaci.

Přestěhování stránek na nové URL

dřív býval v URL unikátní parametr view=neco a podle toho jsem to určoval…

RewriteCond %{HTTP_HOST}  ^www\.zdenda\.com
RewriteCond %{QUERY_STRING} view=lin_gpg
RewriteRule ^(index.php)?  http://%{HTTP_HOST}/jak-na-gnupg? [R=301,L]

Presmerovani na novou domenu

RewriteCond  %{HTTP_HOST}  ^www\.stara.domena\.tld$
RewriteRule  ^(.*)$ http://www.nova-domena.tld$1 [L,R=301,QSA]

Krásná URL v Drupalu

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Zablokování stránky podle refereru

RewriteCond  %{HTTP_REFERER} ^http://www.hnusnej.server/co/na/me/odkazuje
RewriteRule ^/.*  -  [F]

domena na www.domena

RewriteCond  %{HTTP_HOST}  ^([^.]+)\.([^.]+)$
RewriteRule  ^(.*)$  http://www.%{HTTP_HOST}$1 [L,R=301,QSA]

www.neco.domena.tld na neco.domena.tld

RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.([^.]+)\.([^.]+)$ 
RewriteRule ^(.*)$ http://%1.%2.%3$1 [L,R=301,QSA]

Přesměrování z /blbost/cokoliv na /

RewriteEngine on
RewriteBase    /~tsunami/rewrite/
RewriteRule    ^(.+[^/])$           /~tsunami/rewrite/  [R]

Zakázání hot-linků

RewriteCond %{HTTP_REFERER} ^http://(www\.)?badsite1\.tld/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?badsite2\.tld/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?badsite3\.tld/ [NC]
RewriteRule ^/.* - [F]

Napsat komentář