.htaccess trükkök

RoliSoft
2010 February 04, Thursday 17:23

Az Apache .htaccess fájlja nagyon hasznos lehet ha használni tudod, ugyanis sok esetben olyasmiket tud elvégezni amikre külön írnál egy scriptet. Amit meg lehet oldani .htaccess-ben azt ajánlott az alatt megcsinálni, ugyanis egy külön script csak feleslegesen terhelné a szervert.

  • Két domain egyesítése (rolisoft.net és www.rolisoft.net)
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.rolisoft\.net [NC]
    RewriteRule ^(.*)$ http://rolisoft.net/$1 [R=301]
  • IP ban
    <Limit GET POST HEAD>
    	Order Deny,Allow
    	Deny from 123.123.123.123
    	Deny from 234.234.234.234
    	Allow from all
    </Limit>
  • Hotlinking megakadályozása
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://(www.)?oldalad_cime.hu/ [nc]
    RewriteRule .* http://oldalad_cime.hu/kepek/ne_lopj.jpg [nc]
  • PHP kiterjesztés eltávolítása
    RewriteEngine On
    RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
  • Fájllistázás ki- és bekapcsolása
    Options +Indexes # + bekapcsolva; - kikapcsolva
    # egyes fájlok elrejtése a listázásból:
    IndexIgnore *.txt *.mp3 *.avi
  • Alapértelmezett fájl megváltoztatása
    DirectoryIndex kezdolap.html
  • Egyedi HTTP hibaüzenetek
    ErrorDocument 403 /tiltott.html
    ErrorDocument 404 /nem_talalhato.html
    ErrorDocument 500 /szerver_hiba.html
  • SSI engedélyezése – egyszerűbb műveletekre gyorsabb mint egy PHP script
    AddType text/html .shtml
    AddHandler server-parsed .shtml
  • Átirányítás
    # csak egy oldal átirányítása:
    Redirect regi_oldal.html http://www.ujcim.hu/uj_oldal.html
    # teljes honlap átirányítása az új címre:
    Redirect 301 / http://www.ujcim.hu/
  • Bizonyos oldalakról érkező felhasználók kitiltása
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} tiltott_oldal\.hu [NC]
    RewriteCond %{HTTP_REFERER} masodik_tiltott_oldal\.hu [NC]
    RewriteRule .* - [F]
  • Bizonyos user agentek kitiltása – teljes kitiltható bot lista
    SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
    SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
    SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
    SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
    SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
    SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
    SetEnvIfNoCase user-Agent ^Zeus [NC]
    
    <Limit GET POST HEAD>
    	Order Allow,Deny
    	Allow from all
    	Deny from env=bad_bot
    </Limit>
  • Fájl kiszolgálásának megakadályozása
    <Files adatbazis.db3>
    Order allow,deny
    Deny from all
    </Files>
  • Script fájlok kiterjesztésének megváltoztatása
    # saját .rs kiterjesztés a PHP scripteknek:
    AddType application/x-httpd-php .rs
    # saját .rsi kiterjesztés a CGI scripteknek:
    AddType application/x-httpd-cgi .rsi
  • Fájltípusok letöltésének erőltetése
    AddType application/octet-stream .pdf
    AddType application/octet-stream .zip
    AddType application/octet-stream .mov
  • Tömörítés az Apache mod_deflate moduljával
    <IfModule mod_deflate.c>
    	<FilesMatch ".(js|css)$">
    		SetOutputFilter DEFLATE
    	</FilesMatch>
    </IfModule>
  • Fájl lejáratának elküldése
    <FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    	Header set Expires "Wed, 20 May 2020 20:00:00 GMT"
    </FilesMatch>
  • Erőltetett caching
    FileETag MTime Size
    ExpiresActive on
    ExpiresDefault "access plus 86400 seconds"
  • Fájlok tömörítése a gzip modul engedélyezésével
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml
    AddOutputFilterByType DEFLATE text/javascript text/css application/x-javascript
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4.0[678] no-gzip
    BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Ha még tudsz más trükköt is, akkor írd meg egy hozzászólásban!

Hozzászólások
"Két domain egyesítése (rolisoft.net és www.rolisoft.net)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.rolisoft\.net [NC]
RewriteRule ^(.*)$ http://rolisoft.net/$1 [R=301]"

ugyan ennek egy általánosabb megoldása:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

így nem kell minden új projektnél átírni a .htaccess fájlban a domaint.
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
tnx good
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!