- Mi az a .htaccess?
- .htaccess példák
- A felhasználók átirányítása egy adott hibaoldalra
- Egyéni fejléc és érték hozzáadása
- Használók blokkolása IP alapján
- Hivatkozók blokkolása (hotlink-védelem)
- MIME típusok hozzáadása
- A böngésző gyorsítótárazásának kihasználása
- Gzip engedélyezése
- A HTTP-kérési módszerek tiltása
- 301-es átirányítások végrehajtása
- CORS engedélyezése
Mi az a .htaccess?
A .htaccess
fájl (más néven hipertext hozzáférési fájl) az Apache rendszerű webszerverek speciális konfigurációinak meghatározására szolgál. Ez a konfigurációs fájl hatással van arra a könyvtárra, amelyben tárolja, valamint a könyvtáron belüli összes alkönyvtárra. Ha például a .htaccess
fájl a gyökérkönyvtárban található, akkor az egész webhelyre hatással lesz. Másrészt, ha a fájl egy adott könyvtárban található, akkor csak arra a könyvtárra és az azon belüli alkönyvtárakra lesz hatással.
Egyes CMS platformok, például a WordPress és a Drupal szintén rendelkeznek .htaccess
fájlokkal, amelyek lehetővé teszik bizonyos, kizárólag az adott webhelyre vonatkozó konfigurációk megadását. A .htaccess
fájl számos dolog elérésére használható, többek között:
- Áttérítések végrehajtása
- Hibaoldalak testreszabása
- Használók IP alapján történő korlátozása
- MIME típusok hozzáadása
- HTP fejlécek beállítása
- Bizonyos mappák jelszavas védelme
A .htaccess
fájl sokkal több mindenre használható, azonban a fenti lista a .htaccess
legnépszerűbb felhasználási módjai közé tartozik. Az alábbiakban különböző .htaccess
példákat mutatunk be, és azt, hogyan használhatja őket saját webhelyén belül.
.htaccess példák
A .htaccess
fájlban rengeteg konfigurációs lehetőség érhető el. Az alábbi lista a leggyakrabban használt példák közül mutat be néhányat.
A felhasználók átirányítása egy adott hibaoldalra
Az adott fájl vagy oldal által visszaküldött állapotkód alapján átirányíthatja a felhasználót egy egyéni hibaoldalra. Az alábbi példa néhány variációt mutat, amelyet használhat. Mindegyik a visszaküldött állapotkódtól függ.
ErrorDocument 403 /forbidden.htmlErrorDocument 404 /notfound.htmlErrorDocument 500 /servererror.html
Egyéni fejléc és érték hozzáadása
A .htaccess
fájlon keresztül is hozzáadhatók egyéni HTTP fejlécek. Van néhány szintaxis lehetőség, mint például set
, amely minden korábbi, azonos nevű fejléc helyébe lép, add
, amely akkor is hozzáadja a fejlécet, ha létezik egy másik, azonos nevű fejléc. További információkért látogasson el az Apache oldalfejléc útmutatójába.
Header set X-Custom "Custom Value"
A fenti példában a X-Custom
szöveg a HTTP-válaszban visszaküldött HTTP-fejlécnek felel meg, míg a Custom Value
szöveg az adott fejléc értékének felel meg.
Használók blokkolása IP alapján
Biztonsági célból a .htaccess
fájlban a felhasználókat az IP címük alapján is blokkolhatja. Az alábbi példában két IP van blokkolva. Dönthetünk úgy is, hogy az IP-cím utolsó számjegyét nem vesszük fel, ami azt eredményezi, hogy az összes olyan IP-t blokkoljuk, amely az első három számjegyet tartalmazza.
order allow,denydeny from 255.x.x.xdeny from 123.x.x.xallow from all
Hivatkozók blokkolása (hotlink-védelem)
A hivatkozók blokkolása, más néven hotlink-védelem egy olyan módszer, amellyel megakadályozhatjuk, hogy bizonyos hivatkozók hivatkozzanak a webhelye eszközeire, és így ellopják a sávszélességet. Az alábbi snippet segítségével meghatározhatja, hogy mely domainek nem hivatkozhatnak az Ön tartalmára, és így azok 403 Forbidden
hibát kapnak.
RewriteCond %{HTTP_REFERER} unwanteddomain\.com RewriteCond %{HTTP_REFERER} unwanteddomain2\.comRewriteRule .* -
A KeyCDN műszerfalon keresztül is elérhető hasonló funkció. A forró hivatkozások védelmének KeyCDN zónájában történő megvalósításához látogasson el a Zónahivatkozások útmutatóba.
MIME típusok hozzáadása
A MIME típusok határozzák meg, hogy egy adott fájlkiterjesztés mire utal. Ezért néha szükséges ezt beállítani a .htaccess
fájlban, hogy tájékoztassa a webkiszolgálót, hogy milyen típusú fájlra hivatkozik. A MIME típusok teljes listájának megtekintéséhez látogasson el a MIME típusok listájára.
AddType image/gif .gif .GIF
A böngésző gyorsítótárazásának kihasználása
A .htaccess
fájl a böngésző gyorsítótárazásának kihasználásával a webhely teljesítményének javítására is használható. Minden fájltípushoz meghatározható egy adott lejárati érték. Meghatározhatja a fájltípusok egyéni listáját, és módosíthatja mindegyik lejárati értékét, azonban az alábbi részlet jó kiindulási pont lehet.
## EXPIRES CACHING ##<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month"</IfModule>## EXPIRES CACHING ##
Gzip engedélyezése
A Gzip engedélyezése az eredeti kiszolgálón segít javítani az eszközök teljesítményét, mivel azok tömörítve vannak, és így gyorsabban szállíthatóak. Meghatározhat egy egyéni listát a Gzippelni kívánt MIME típusokról, azonban az alábbi példa jó kiindulópont. Ha többet szeretne megtudni a Gzip előnyeiről és működéséről, olvassa el a Gzip tömörítés engedélyezése című cikkünket.
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml</IfModule>
A HTTP-kérési módszerek tiltása
Egyéb HTTP-kérési módszerek vannak, amelyeket különböző eredmények elérésére használnak. Ha vannak bizonyos HTTP-módszerek, amelyeket nem szeretné, hogy a felhasználó a weboldalán alkalmazzon, akkor a .htaccess
segítségével megtagadhatja őket.
RewriteCond %{REQUEST_METHOD} !^(HEAD|OPTIONS|POST|PUT)RewriteRule .* -
301-es átirányítások végrehajtása
Ha egy áthelyezett oldalhoz 301
átirányítást kell végrehajtania, akkor ez könnyen megvalósítható a .htaccess
segítségével. Egyszerűen használja az alábbi részletet, amely az első URL-t (régi link) átirányítja a második URL-re (új link).
Redirect 301 https://yourwebsite.com/old-page https://yourwebsite.com/new-page
CORS engedélyezése
A CORS engedélyezése elengedhetetlen a statikus eszközök különböző eredetű átviteléhez. A következő snippet hozzáadható a .htaccess
fájlhoz annak érdekében, hogy minden origó számára lehetővé tegye az erőforrások megosztását. Ellenkező esetben, ha ez nincs engedélyezve, és az Ön eredete erőforrásokat kér egy másik eredettől, CORS hibát fog kapni. A CORS-ről bővebben a Hogyan használjuk a CORS-t című cikkünkben olvashat.
<IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css|js|gif|png|jpe?g|svg|svgz|ico|webp)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch></IfModule>
A fenti .htaccess
példák remek kiindulópontot jelentenek azok számára, akik még nem ismerik a .htaccess
használatát, de mégis szeretnének bizonyos webkiszolgáló-konfigurációkat elvégezni. A .htaccess
fájl számos feladat elvégzésére képes, és meglehetősen rugalmasan alkalmazkodik a webhely igényeihez. Bár ezek a .htaccess
példák remek kiindulópontot jelentenek, előfordulhat, hogy néhány fejlettebb .htaccess
-konfigurációt szeretne elvégezni. Ha többet szeretne megtudni erről a témáról, tekintse meg az AskApache .htaccess
fájl útmutató cikkét.