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

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

  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 FTP szerver beállítása
Következő cikk ❯ Webszerver (Apache-PHP-MySQL/MariaDB) konfigurálása Linuxon

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.