Tudásbázis Egyszerű utasítások a Profitserver szolgáltatással való együttműködéshez
Tudásbázis A .htaccess fájl beállítása

A .htaccess fájl beállítása


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 vagy azokban a mappákban található, ahol speciális konfigurációra van szükség. Például, ha WordPress-t használ, a konfigurációt a Yoast SEO bővítményen keresztül végezheti el, amelyről a robots.txt konfigurálása című cikkben írtunk . Más esetekben elegendő a kívánt mappába menni és szerkeszteni a meglévő .htaccess fájlt, vagy létrehozni, ha még nem hozták 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>

Egy hasonló átirányítás a RedirectPermanent direktíva használatával í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 legegyszerűbben konfigurálható átirányítási módszerek. Tekintsünk egy olyan konfigurációt, amely más, fejlettebb átirányítási típusokat használ a mod_rewrite modullal:

<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

Ez azt jelenti, hogy 404-es hiba esetén a /errors/not_found.html címen található oldal nyílik meg. Az abszolút URL-eket hasonlóképpen kell megadni:

ErrorDocument 500 http://example.com/errors/server_error.html

Ez a példa a server_error.html oldal megjelenítését mutatja a http://example.com/errors/ címen 500-as hiba esetén.

Webhelykönyvtárhoz való hozzáférés megtagadása

A .htaccess fájl tartalmazza a „ Deny from all” parancsot , amely segít megtagadni a hozzáférést bizonyos mappákhoz vagy fájlokhoz a webszerveren. Ez akkor lehet hasznos, ha az adatbiztonság érdekében el szeretnéd rejteni a személyes információkat vagy a fontos fájlokat a webhely látogatói elől.

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óképpen történik, a " Deny from " sor megkettőzésével 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áld a Deny from all direktívát , a címek maszk szerinti blokkolásához pedig a Deny from 11.22 direktívát.

Ahol a 11.22 az IP-cím maszkja.

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 mod_rewrite használata :

<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:

  1. A RewriteCond %{HTTP_USER_AGENT} a User-Agent karakterlánc ellenőrzésére szolgál.
  2. 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.
  3. 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 Apache mod_deflate és mod_gzip moduljai segítenek tömöríteni azokat az információkat, amelyeket a szerver küld a felhasználók eszközeire. Ezáltal a fájlok mérete kisebb lesz, 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 használatára :

<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 a mod_gzip fájlra :

<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 direktívákat. A fájl összes képességével megismerkedhetsz a hivatalos dokumentációban.

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:

  1. 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.
  2. 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.
  3. 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.
  4. Tekintse meg a szervernaplókat. A .htaccess fájl működésével kapcsolatos összes hibát megjelenítik.
  5. 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.

❮ Előző cikk Webszerver (Apache-PHP-MySQL/MariaDB) konfigurálása Linuxon
Következő cikk ❯ FTP szerver beállítása

Kérdezzen meg minket a VPS-ről

Mindig készséggel válaszolunk kérdéseire a nap és az éjszaka bármely szakában.