A .htaccess használata minden tárhelyen engedélyezett.
A .htaccess fájl lehetővé teszi, hogy minden egyes tárhely szolgáltatásnál külön módosíthasd a szerver beállításait. A következő beállítások elvégzése lehetséges:
- átirányítás létrehozása
- hibajelentések beállítása
- a weboldal elérése adott IP címről
- a könyvtárhoz való hozzáférés jelszóval korlátozható
- az ún. áttekinthető URL automatikus beállítása
Ha a .htaccess fájlt a tárhely gyökérkönyvtárában helyezed el, akkor a beállítások az egész tárhelyet érintik. Ha egy alkönyvtárban helyezed el, csak az adott könyvtárra és annak további alkönyvtáraira lesz hatással.
.htaccess tippek-trükkök
Szeretném az oldalamra látogatókat átirányítani egy másik címre
(pl. a te-domain-neved.hu-ra érkezőket a www.te-domain-neved.hu-ra)
- A tárhelyre FTP kapcsolattal bejelentkezve létre kell hoznod (ha még nem létezik) egy .htaccess nevű fájlt a public_html mappában
- Majd a következőket kell beírni, a megfelelő címeket behelyettesítve:
RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.)?a-te-domain-neved\.hu RewriteRule (.*) http://a-kivant-cel-cim.hu/$1 [R=301,L]
- Egy konkrét példa a teszt.hu címmel www nélküli verzió átirányítása a www-re:
RewriteEngine on RewriteCond %{HTTP_HOST} ^teszt\.hu RewriteRule (.*) http://www.teszt.hu/$1 [R=301,L]
Szeretném az oldal elérését korlátozni bizonyos IP címekre vonatkozóan
- A tárhelyre FTP kapcsolattal bejelentkezve létre kell hoznod (ha még nem létezik) egy .htaccess nevű fájlt a public_html mappában
- Majd a következőket kell beleírni:
Order Allow,Deny Deny from 1.2.3.4
- Az 1.2.3.4 helyére kell beillesztened a tiltani kívánt IP címet (konkrét IP tiltása)
- vagy az IP cím helyére all kapcsolóval minden IP tiltása (Deny from all)
Szeretném az oldalamat csak bizonyos IP címekre vonatkozóan elérhetővé tenni
- A tárhelyre FTP kapcsolattal bejelentkezve létre kell hoznod (ha még nem létezik) egy .htaccess nevű fájlt a public_html mappában
- Majd a következőket kell beírni:
Order Deny,Allow Deny from all Allow from 1.2.3.4
- Az 1.2.3.4 helyére kell beillesztened a megengedett IP címet
Szeretném, hogy ha egy mappában nincs index fájl, akkor ne jelenjen meg a tartalom listázás, amikor beírja valaki a böngészőbe az adott mappa címét
- A tárhelyre FTP kapcsolattal bejelentkezve létre kell hoznod (ha még nem létezik) egy .htaccess nevű fájlt a public_html mappában
- Majd a következőket kell beírni:
Options -Indexes
Szeretnék bizonyos HTTP referrer-eket letiltani (bizonyos oldalakon lévő linkekről látogatókat kizárni)
- A tárhelyre FTP kapcsolattal bejelentkezve létre kell hoznod (ha még nem létezik) egy .htaccess nevű fájlt a public_html mappában
- Majd a következőket kell beírni, a megfelelő címeket behelyettesítve (otherdomain.com-n vagy otherdomain.com-n keresztül jövő látogatókat szeretném letiltani):
RewriteEngine on RewriteCond %{HTTP_REFERER} otherdomain\.com [NC,OR] RewriteCond %{HTTP_REFERER} otherdomain\.com RewriteRule .* - [F]
Szeretném a tárhelyre jövő kéréseket az egyik almappába irányítani
- A tárhelyre FTP kapcsolattal bejelentkezve létre kell hoznod (ha még nem létezik) egy .htaccess nevű fájlt a public_html mappában
- Majd a következőket kell beírni, a megfelelő címeket behelyettesítve (a domain.hu-ra vagy a www.domain.hu-ra jövő kéréseket a tárhelyen a public_html-en belül lévő „konyvtar” nevű mappában lévő index fájl fogja kiszolgálni):
Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} ^domain\.hu [OR] RewriteCond %{HTTP_HOST} ^www\.domain\.hu RewriteCond %{REQUEST_URI} !^/konyvtar/ RewriteRule ^(.*)$ /konyvtar/$1 [L]
Joomla tartalomkezelő rendszer használata esetén a configuration.php fájlban az alábbi sor még módosítandó. Ha nincs ilyen sor, akkor egyszerűen adjuk hozzá a fájlhoz.
Erről: var $live_site = ''; Erre: var $live_site = 'http://www.domain.hu';
Szeretném a HTTP-s kéréseket HTTPS-re irányítani
- A tárhelyre FTP kapcsolattal bejelentkezve létre kell hoznod (ha még nem létezik) egy .htaccess nevű fájlt a public_html mappában
- Majd a következőket kell beírni, a megfelelő címeket behelyettesítve (a ${szerver} részre a megfelelő hostnév helyettesítendő, ha ezzel gondod lenne, akkor nyugodtan keresd meg ügyfélszolgálatunkat).
RewriteEngine On # letrehozok egy HTTP_SEC valtozot off ertekkel barmely X-Forwarded-Server eseten SetEnvIfNoCase X-Forwarded-Server "(.*)" HTTP_SEC=off # ha az X-Forwarded-Server az adott szerver hostja, akkor HTTP_SEC=on SetEnvIfNoCase X-Forwarded-Server "${szerver}.lanten.hu" HTTP_SEC=on # ha a HTTP_SEC erteke off akkor atiranyitom https-re RewriteCond %{ENV:HTTP_SEC} off [NC] RewriteRule ^(.*)$ https://domain.hu/$1 [L,R=301]
Minden POST típusú kérés tiltása
RewriteCond %{REQUEST_METHOD} POST RewriteRule .* - [F,L]
LARAVEL ELŐKÉSZÍTÉSÉHEZ
RewriteEngine OnRewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC] RewriteRule ^ %1 [L,NE,R=302]RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
Hasznos linkek
http://www.catswhocode.com/blog/10-htaccess-snippets-to-optimize-your-website
https://httpd.apache.org/docs/current/howto/htaccess.html