Mi az a htaccess?
A htaccess egy rejtett fájl weboldalunk gyökérkönyvtárában. Teljes neve: .htaccess
Igazából egy név nélküli, htaccess kiterjesztésű szöveges fájl. Bármilyen egyszerű szövegszerkesztő programmal szerkeszthető (pl. Notepad, Notepad++), ellenben nem használható olyan szövegszerkesztő, mely formázásokkal tűzdeli tele a szöveget (pl. Microsoft Word, OpenOffice Writer, stb.)
Mire is jó igazából?
A htaccess fájl segítségével sok mindent beállíthatunk a honlapunk működésével kapcsolatosan. Íme néhány példa:
- egyedi hibaoldalak létrehozása
- a honlap bármely könyvtárának jelszavas védelme
- szépen kinéző (keresőbarát) linkek létrehozása
- a honlap képeinek más honlapba való beágyazásának tiltása
- megszüntetett oldalak átirányítása
- IP cím alapján látogatók tiltása
- és még sok minden más…
Néhány fontos tudnivaló a htaccess -szel kapcsolatosan:
- FTP -n történű feltöltéskor az átvitel módja ascii (vagy automatikus) legyen, bináris (binary) mód nem jó!
- A htaccess fájlt néhány szerver nem engedi feltölteni a fájlnév előtti pont miatt. A legegyszerűbb megoldás, ha felmásoljuk htaccess.txt néven és weboldalunk tárhelyén nevezzük át .htaccess -re.
- A htaccess nem működik Windows szervereken.
- Figyelni kell arra is, hogy a feltöltés során NE írjuk felül a már esetlegesen ott lévő htaccess fájlt. Sok CMS (Joomla, WordPress, Drupal) saját bejegyzéseket ír a htaccess -be. Akár a teljes weboldalunk működését leállíthatjuk egy rossz mozdulattal!
- Nem árt leellenőrizni, hogy az FTP program, amit használunk, megjeleníti -e a rejtett fájlokat. Ügyes és megbízható FTP programok: TotalCommander, FlashFXP, FizeZilla.
- Mindig ellenőrizzük az eredményt. Sikerült -e felmásolni a fájlt a tárhelyre, illetve valóban működnek -e a módosítások. Ha például a címben szereplő 301 -es átirányítást alkalmazzuk, de a header -ben (feléc) 302 -es üzenetet kapunk vissza, az csak átmeneti állapotot jelent, a 301 -es üzenet jelenti a tartós átirányítást.
(A példákban szereplő sajatdomain.hu domain neveket, címeket természetesen éles használatkor át kell írni a valódi domain névre.)
Egész honlap átirányítása
Ezzel a módszerrel a régi honlap (ahol a htaccess módosításra kerül) minden forgalmát az újra lehet irányítani:
Redirect 301 / http://www.sajatdomain.hu/
Egy adott oldal (fájl) átirányítása
Ha csak egyetlen egy oldalt szeretnénk átirányítani, ahhoz használjuk a következő sort:
Redirect 301 /regioldal.html http://www.sajatdomain.hu/ujoldal.html
Teljes honlap átirányítása almappástul
Abban az esetben, ha új domain -re szeretnénk átirányítani mindent és ott a mappastruktúra megegyezik a jelenlegi honlapéval, akkor csupán szúrjuk be a következő sort a htaccess -be:
RedirectMatch 301 /(.*) http://ujdomain.hu
Fájlnevek módosítása esetén
Ha megváltoztattuk pl. a HTML fájlokat PHP fájlokra, akkor minden olyan link, mely a HTML fájlokra mutatna, hibás lesz. Irányítsunk át minden HTML fájl iránti kérést PHP -re:
RedirectMatch 301 (.*)\.html$ http://www.sajatdomain.hu$1.php
A következőkben nézzünk néhány összetettebb példát.
WWW nélküli cím átirányítás a WWW -s címre
# Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sajatdomain.hu [NC]
RewriteRule ^(.*)$ http://www.sajatdomain.hu/$1 [L,R=301
A WWW -s cím használata keresőbarát, a találati listán jobb helyezést lehet vele elérni.
WWW -s cím átirányítása a WWW nélküli címre
# Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^sajatdomain\.hu
RewriteRule (.*) http://sajatdomain.hu/$1 [R=301,L]
Ha nem szeretnénk a WWW -s címet használni, de előfordul, hogy a látogatók WWW -vel írják be, akkor alkalmazzuk ezt a kódot.
index.php átirányítása a főoldalra
# Options +FollowSymLinks
RewriteEngine on
# index.php to /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
RewriteRule ^(.*)index\.php$ /$1 [R=301,L]
Természetesen az index.html is teljesen hasonlóan működik, csupán .php helyett .html -t kell írnunk.
A keresők találati listájában a weboldalunk, illetve a weboldal index-fájlja (index.html vagy php) külön-külön szerepel. Ezekkel a sorokkal elérhetjük, hogy a kettő egynek számítson.
FONTOS: az Options +FollowSymLinks
sort a példákban kommenteléssel (# jel) inaktívvá tettük. A mi szervereinken ez az beállítás eleve adott, így ügyfeleinknek ezt nem kell beállítania, de más szolgáltatóknál lehet, hogy szükség van rá.