.htaccess szabályok és átirányítások beállítása

A .htaccess fájl egy könyvtárszintű konfigurációs fájl, amelyet az Apache webszerver támogat. Lehetővé teszi a webszerver beállításainak módosítását (például funkciók engedélyezése vagy letiltása) egy adott fiókhoz anélkül, hogy a globális szerverkonfigurációt érintené.

Ez a fájl a beállításait arra a teljes könyvtárra alkalmazza, ahol elhelyezkedik, beleértve az összes fájlt és almappát is abban a könyvtárban. A .htaccess fájlban végrehajtott módosítások azonnal érvénybe lépnek, nincs szükség a szerver újraindítására.

Hogyan található meg a .htaccess fájl

A .htaccess fájl megtalálásához:  

1. Lépjen be Spaceship fiókjába >> válassza a Hosting Manager menüpontot a Launchpadben >> Kezelés lehetőséget a tárhelycsomag mellett >> Fájlok és tárhely >> Fájlkezelés lehetőséget a weboldal neve mellett.

2. Átirányításra kerül a domain gyökérkönyvtárába. 

3.  Ha szerkeszteni szeretné a .htaccess fájlt a domainhez, keresse meg a .htaccess fájlt a domain gyökérkönyvtárában, kattintson rá jobb gombbal, és válassza a Szerkesztés lehetőséget:


MEGJEGYZÉS: Győződjön meg róla, hogy a "Rejtett fájlok (dotfiles) megjelenítése" engedélyezve van a Beállítások menüben:


4. Ha nincs .htaccess fájl a Fájlkezelőben, létrehozhat egy újat a + Fájl gombbal:


5. Most már hozzáadhatja saját konfigurációs szabályait, és elmentheti azokat.
   

Gyakran használt .htaccess szabályok listája

Tiltás 

Ez a módszer lehetővé teszi a felhasználók IP-cím vagy domain alapján történő letiltását. Különösen hasznos a nem kívánt látogatók kizárására, vagy a weboldal bizonyos részeinek, például az adminisztrációs felületnek csak a tulajdonos számára történő elérhetővé tételére.

Adott tiltási szabályok alkalmazásához hozzon létre egy .htaccess fájlt a következő tartalommal:

(Mindenki más számára engedélyezett hozzáférés, de az X.X.X.X IP-című felhasználók le vannak tiltva)

<RequireAll>

Require all granted

Require not ip X.X.X.X

</RequireAll>

(Minden látogató letiltása, kivéve a megadott X.X.X.X és Y.Y.Y.Y IP-címeket)

<RequireAll>

Require all denied

Require ip X.X.X.X

Require ip Y.Y.Y.Y

</RequireAll>

MEGJEGYZÉS: Ne használja az elavult Allow, Deny és Order utasításokat az új Require utasítással.

Mod_Rewrite (átirányítási szabályok)

A Mod_Rewrite meghatározza, hogyan jelennek meg a weboldalak és URL-ek a látogatók számára.

Alapértelmezés szerint a Mod_Rewrite egy URL-t a megfelelő fájlrendszer elérési útra képez le. Azonban képes egy URL-t egy másikra is átirányítani.

Átirányítás beállítása előtt fontos kiválasztani az Ön igényeinek leginkább megfelelő átirányítási típust:

  • Állandó átirányítás (301): Ez az átirányítás 301-es státuszkódot küld, jelezve, hogy az oldal véglegesen áthelyezésre került. A böngésző eltárolja, és a keresőmotorok, valamint a felhasználói ügynökök frissítik az URL-t az adatbázisukban. Ez a leggyakoribb átirányítási típus.

  • Ideiglenes átirányítás (302): Ez az átirányítás 302-es státuszkódot küld, jelezve, hogy az áthelyezés ideiglenes. A böngésző nem tárolja ezt az átirányítást, és bár átirányítja a látogatókat és a keresőmotorokat, az eredeti oldal továbbra is indexelve marad. Ezt a típusú átirányítást ajánljuk, hacsak nem biztos abban, hogy az URL a jövőben nem fog változni.

Az alábbiakban néhány leggyakoribb és leghasznosabb átirányítás található, amelyeket a .htaccess fájlon keresztül lehet beállítani:

Állandó átirányítás innen: example1.com ide: example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]

Ideiglenes átirányítás innen: exampledomain1.com ide: exampledomain2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]

MEGJEGYZÉS: Az alábbi példák állandó átirányításokat mutatnak. Ideiglenes átirányításokat úgy lehet megadni, hogy a kód végén (ahol szükséges) a [R=301,L] helyett [R=302,L]-t használ.

Átirányítás innen: example1.com/subfolder ide: example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]

Átirányítás HTTP-ről HTTPS-re például: example.com esetén

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://example.com%{REQUEST_URI} [R,L]

vagy

RewriteCond %{SERVER_PORT} 80

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example\.com$

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Átirányítás nem-WWW-ről WWW-re

  • bármely domain esetén, a .htaccess lép életbe:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  • adott domain esetén:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Átirányítás WWW-ről nem-WWW-re

  • bármely domain esetén a .htaccess lép életbe:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  • adott domain esetén:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]

RewriteRule (.*) http://example.com/$1 [R=301,L]

Az összes example.com oldal átirányítása a megfelelő domain.com oldalra

RedirectMatch 301 ^/(.*)$ http://domain.com/$1

MEGJEGYZÉS: Az oldalneveknek mindkét domainen egyezniük kell, különben az átirányítás "Az oldal nem található" üzenetet eredményez.

Egy oldal átirányítása új URL-re

Redirect 301 /old_page.html http://www.domain.com/new_page.html

MEGJEGYZÉS: Ez a technika hasznos lehet egy törölt oldal 404-es hibára történő átirányításához, vagy SEO módosításokhoz tartalomfrissítés után.

Hitelesítés/azonosítás 

Ez a szabálytípus biztonsági korlátozásokat határoz meg egy könyvtárra vagy almappára. Jelszóval védheti a könyvtárakat, így minden látogatónak, aki hozzá szeretne férni, felhasználónevet és jelszót kell megadnia.

A védelem beállításához:  

1. Hozza létre a védeni kívánt könyvtárat a /home/cpanel_user/.htpasswds/ mappában (például a domain.com/test esetén az elérési út: .htpasswds/domain.com/test/).

2. Ebben a könyvtárban hozzon létre egy passwd fájlt, és adja hozzá a titkosított hozzáférési adatokat egy online generátor segítségével.

3. Adja hozzá a következő utasításokat a .htaccess fájlhoz:

AuthType Basic

AuthName "Directory Name"

AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"

require valid-user

Egyedi hibaoldalak

Ez a funkció lehetővé teszi személyre szabott hibaoldalak létrehozását a weboldalán. Ez hasznos lehetőség, mivel lehetővé teszi, hogy a látogatóknak olyan hibaüzenetet jelenítsen meg, amely illeszkedik a weboldal témájához, ha hibás URL-ek fordulnak elő. Így elkerülhető az alapértelmezett '404 File Not Found' hiba megjelenítése, és helyette egy egyedileg tervezett hibaoldal jelenik meg, amely útmutatást ad a felhasználóknak a weboldal tartalmához való visszatéréshez, elkerülve a félreértéseket.

Egyedi hibaoldal beállításához adja hozzá a következő szöveget egy .htaccess fájlhoz:

ErrorDocument 404 /404.html

Ez a sor utasítja az Apache webszervert, hogy töltse be a 404.html fájlt, amely a domain gyökérkönyvtárában található, amikor 404-es (File Not Found) hiba történik.

MEGJEGYZÉS: Más hibákhoz (például 403 vagy 500) egyedi hibaoldal létrehozásához egyszerűen cserélje le a 404-et a megfelelő hibakódra, és /404.html-t a saját hibaoldalának elérési útjára.

Létező .htaccess szabályok letiltása

Ha ideiglenesen le kell tiltania néhány meglévő szabályt, például tesztelési célból, egyszerűen kikommentelheti őket. Ehhez csak adjon egy kettőskeresztet (#) a sor elejére.

Alternatívaként egyetlen sort vagy sorblokkot is letilthat úgy, hogy kijelöli őket, és használja a Ctrl + / billentyűparancsot.

Érvényes e-mail-cím megadása kötelező