Ebben a cikkben megvizsgáljuk a .htaccess fájl használatának alapelveit, amely kulcsfontosságú a SEO javításához. Ez a fájl biztosítja az oldalak megfelelő indexelését a keresőmotorok által. Megtanuljuk az átirányítások kezelését, a biztonság konfigurálását és a teljesítmény fokozását. Ezenkívül tippeket adunk a fájl önálló konfigurálásához.
Miért van szükség a .htaccess fájlra?
A .htaccess fájl egyfajta "távirányítóként" működik a webfejlesztők számára az Apache szervereken. Kényelmes eszközöket kínál a különböző paraméterek beállításához és a webhely viselkedésének kezeléséhez. Ha nem érhető el közvetlen hozzáférés a szerver fő konfigurációs fájljaihoz (mint például a virtuális tárhely esetében), a .htaccess hasznos eszközzé válik a szükséges változtatások elvégzéséhez.
A Htaccess gyakran a webhely gyökérmappájában található, vagy azokban a mappákban, ahol speciális konfigurációra van szükség. Például, ha WordPress-t használ, a konfigurálás a Yoast SEO beépülő modulon keresztül végezhető el, amelyet a cikkben tárgyaltunk. A robots.txt konfigurálása. Más esetekben elég a kívánt mappába lépni és a meglévő .htaccess fájlt szerkeszteni, vagy létrehozni, ha még nem jött létre.
A .htaccess fájl konfigurálása
301 A htaccess átirányítása
A .htaccess fájl 301-es átirányítása egy webhely állandó átirányításához hasonlítható. Tájékoztatja a keresőmotorokat és a böngészőket, hogy az oldal mostantól véglegesen új címen található, és javasolja a könyvjelzők frissítését és az indexelést. Az ilyen átirányítást általában akkor használják, ha egy oldalt áthelyeznek vagy törölnek, hogy megőrizzék a keresési eredmények között elfoglalt helyét, és átirányítsák a látogatókat az új helyre.
Az átirányítások aktiválásához engedélyeznie kell a megfelelő parancsot a .htaccess fájlban:
RewriteEngine on
Ezt követően beállíthatja az átirányítás legegyszerűbb formáját:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
Hasonló átirányítás a RedirectPermanent direktíva így néz ki:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Ezek a legkönnyebben konfigurálható átirányítási módszerek. Vegyünk egy olyan konfigurációt, amely más, fejlettebb típusú átirányításokat használ a mod_rewrite modul:
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirecting from one page to another
RewriteRule ^old-page.html$ http://www.example.com/new-page.html [R=301,L]
# Redirecting all traffic from one domain to another
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
# Redirecting from www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
# Redirecting from HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Redirecting from one subdomain to another
RewriteCond %{HTTP_HOST} ^subdomain1.example.com$
RewriteRule ^(.*)$ http://subdomain2.example.com/$1 [R=301,L]
</IfModule>
Az ideiglenes áthelyezést jelző 302-es átirányítási .htaccess sokkal ritkábban fordul elő. Íme egy példa egy ilyen beállításra:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Direktíva ErrorDocument
Ezzel a beállítással szabályozhatja, hogy a felhasználó mit lásson, ha HTTP-hibák fordulnak elő webhelyén. A szokásos hibaüzenet helyett megjelenítheti a saját oldalát, amely informatívabb lesz a látogató számára, és segít megérteni a történteket. Egyszerűen kövesse ezt a szintaxist a használathoz:
ErrorDocument <error_code> <URL_page>
Például,
ErrorDocument 404 /errors/not_found.html
Azt jelenti, hogy amikor a 404 hiba történik, a címen található oldal /errors/not_found.html nyitásra kerül. Az abszolút URL-ek meghatározása hasonló módon történik:
ErrorDocument 500 http://example.com/errors/server_error.html
Ez a példa a képernyőn látható server_error.html oldalt http://example.com/errors/ abban az esetben, ha a 500 hiba.
Webhelykönyvtárhoz való hozzáférés megtagadása
A .htaccess fájl tartalmazza a parancsot Tiltása minden, amely segít megtagadni a hozzáférést bizonyos mappákhoz vagy fájlokhoz a webszerveren. Ez akkor lehet hasznos, ha személyes információkat vagy fontos fájlokat szeretne elrejteni a webhely látogatói elől az adatbiztonság érdekében.
A listázás letiltásához (az összes elérhető könyvtár megtekintéséhez) hozzá kell adnia a következő sort:
Options -Indexes
A következőképpen néz ki egy példa egy adott könyvtárhoz való hozzáférés blokkolására:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
Hasonlóképpen megtagadhatja a hozzáférést egyetlen fájlhoz:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
Vagy egy sor fájlhoz kiterjesztés szerint:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Hozzáférés blokkolása IP-n keresztül
A hozzáférés IP-alapú blokkolása a .htaccess fájlban egy olyan módszer, amely lehetővé teszi, hogy korlátozza a webhelyhez való hozzáférést bizonyos IP-címek vagy azok csoportjai számára. Ez akkor lehet hasznos, ha meg akarja akadályozni bizonyos személyek vagy nemkívánatos robotok hozzáférését webhelyéhez vagy bizonyos részeihez.
Egyetlen IP-cím blokkolása a következő paranccsal történik:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
Több IP-cím blokkolása hasonló módon történik a "Tilt" sort a szükséges címekkel.
IP-címtartomány blokkolásához:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
Ha csak bizonyos IP-címekhez szeretne hozzáférést engedélyezni, adja hozzá a kódot:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
A hozzáférés teljes megtagadásához használja az irányelvet Tiltása minden, és a címek maszk általi blokkolásához adja meg Tilt 11.22.
Ahol, 11.22 az IP-cím maszk.
Látogatók blokkolása User-Agent által
A felhasználók letiltása User-Agent által a .htaccess fájlban egy módszer annak szabályozására, hogy a látogató által használt böngészővel kapcsolatos információk alapján ki férhessen hozzá a webszerverhez. A User-Agent karakterlánc adatokat tartalmaz arról a böngészőről, amelyet egy személy az Ön szerverével való interakcióhoz használ, és ennek az információnak köszönhetően korlátozhatja bizonyos felhasználók hozzáférését.
A User-Agent általi blokkolás leggyakoribb módja a használata mod_rewrite:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [NC]
RewriteRule ^.*$ - [F,L]
</IfModule>
Ebben a példában:
- A RewriteCond %{HTTP_USER_AGENT} a User-Agent karakterlánc ellenőrzésére szolgál.
- A ^Bot1, ^Bot2, ^Bot3 példák a blokkolni kívánt User-Agent karakterláncokra. Az NC módosítók azt jelzik, hogy az összehasonlításnak nem kell megkülönböztetnie a kis- és nagybetűket.
- A RewriteRule ^.*$ - [F,L] vonatkozik a kérésre, ha a RewriteCond bármelyik feltétele teljesül. Választ küld a 403 Tiltott állapotkóddal (F), és leállítja a szabályok feldolgozását (L).
Gyorsítótár a htaccessben
A gyorsítótár .htaccess fájlon keresztüli konfigurálása felgyorsítja a webhelyet, mivel gyorsabban tölti be a felhasználókat. Ez így működik: bizonyos fájlok, például képek, CSS-stílusok és JavaScript-szkriptek az első betöltés után a felhasználó böngészőjének gyorsítótárában tárolódnak. A böngésző most már használhatja ezeket a fájlokat a gyorsítótárból, ahelyett, hogy minden alkalommal újratöltené őket a szerverről, amikor a felhasználó felkeres egy oldalt. Ez csökkenti a betöltési időt és javítja a webhely teljesítményét.
Vegyünk egy példát:
# Enable caching for images for 1 month
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
# Enable caching for CSS and JavaScript for 1 week
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
A gyakran frissített erőforrások esetében viszont le kell tiltani a gyorsítótárazást:
# Excluding caching for HTML pages and XML files
<FilesMatch "\.(html|xml)$">
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>
A webhely teljesítményének optimalizálása
Az mod_deflate és a mod_gzip Az Apache moduljai segítenek tömöríteni az információkat, amelyeket a szerver küld a felhasználók eszközeire. Ez kisebb méretűvé teszi a fájlokat, ami viszont felgyorsítja az oldalak betöltését. Fontos azonban megjegyezni, hogy ezeknek a moduloknak a támogatása és konfigurációja a szervertől függően változhat.
Példa a mod_deflate modul:
<IfModule mod_deflate.c>
# Compressing text file types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
Példa erre mod_gzip:
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ # Enabling compression for files with extensions .html, .txt, .css, .js, .php, .pl
mod_gzip_item_include mime ^application/x-javascript.* # Enabling compression for MIME types starting with application/x-javascript
mod_gzip_item_include mime ^text/.* # Enabling compression for MIME types starting with text/
mod_gzip_item_exclude mime ^image/.* # Excluding from compression MIME types starting with image/
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # Excluding already compressed data (responses with the Content-Encoding: gzip header)
</IfModule>
Megbeszéltük a leggyakrabban használt irányelveket. Megismerheti a fájl összes lehetőségét a hivatalos dokumentumok.
A .htaccess fájl működésének ellenőrzése
Ha ellenőrizni szeretné, hogy a .htaccess fájl működik-e a webhelyen, hajtsa végre a következő lépéseket:
- Szándékosan módosítsa a hibás .htaccess fájlt. Válaszul a szervernek hibát kell adnia. Ez a módszer megmutatja, hogy a fájl művelete általában alkalmazva van-e a kiszolgálón.
- Ellenőrizze az Ön által végrehajtott konkrét módosítások működőképességét. Például végezzen kisebb módosításokat az egyik paraméteren, és értékelje a változások jelenlétét.
- Ellenőrizze az oldal állapotkódját, ha a változtatások a szerver válaszához kapcsolódnak. Hogyan kell ezt megtenni, korábban leírtuk a cikkben HTTP hibakódok: a szerverhibák teljes listája.
- Tekintse meg a szervernaplókat. A .htaccess fájl működésével kapcsolatos összes hibát megjelenítik.
- Végezzen tesztelést online szolgáltatások vagy eszközök segítségével.
Fontos megérteni, hogy a .htaccess fájl működésének ellenőrzéséhez nem kell egyszerre végrehajtania az összes lépést. Elég kiválasztani a listából a legmegfelelőbb módszert, és használni.
Összegzés
A .htaccess fájl konfigurálása fontos lépés az Apache-kiszolgáló optimalizálása és védelme terén. Megvizsgáltuk, hogyan segít ez a fájl az átirányítások kezelésében, a tartalom tömörítésében és a biztonság biztosításában. Miután elsajátította a .htaccess használatát, hatékony eszközt kap a webhelyek teljesítményének és funkcionalitásának javítására.