Ma belefutottam egy problémába: mi van akkor, ha otthoni kis házi szerverünk van, és regisztrálunk hozzá egy domain-t pl. a www.no-ip.com-on. Egyszerű az eset: az index.html vagy index.php oldalunk megjelenik.
De mi van akkor, ha mi már több különböző domaint regisztrálunk és azt szeretnénk, hogy a címet beírva azonnal az adott oldal töltődjön be, anélkül, hogy a felhasználó a többiről tudomást szerezne.
Mivel nem volt kedvem szervert konfigolni inkább egy másik utat találtam ki:
Mit csinál ez a kód?
A kódban – mint ahogy az az első két sorban italic-al ki van jelölve – akárhány domain nevet megadhatunk a következő formában:
Ebben az esetben a domain név NE tartalmazza a http:// protokoll előtagot, se filenevet, és a végén ne legyen ott a / jel.
Pl.:
gyik.sytes.net -> Jó
gyik.com -> Jó
http://www.gyik.com/ -> Rossz
http://www.gyik.com/index.php -> Rossz
Na visszatérve eredeti kérdésünkre… A szkript maga annyit csinál, hogy a dőlt-tel (italic) jelzett sorok feltöltenek egy ún. (egy dimenziós) tömböt (array), amelyben az elemek kulcsa (neve – key) az adott domain név, az értéke pedig az a könyvtár, ami az adott domain névnél a DocumentRoot értéket kell, hogy felvegye.
Ezután megnézi, hogy van-e olyan elem a fentebb feltöltött tömbben, amelynek a kulcsa megegyezik azzal a domain-el, amiről a felhasználó információkat töltött le. (Ezt a PHP a $_SERVER[‘HTTP_HOST’] változóban tárolja).
Ha talál ilyet, akkor megnézi, hogy a hozzá tartozó könyvtárban létezik-e olyan nevű file, amit a felhasználó lekért. Ha igen, akkor beállítja, hogy az esetleges include és require függvényeknél az adott könyvtárban is keresse a fileokat, és "behúzza" azt a filet. Ha nem talál, akkor visszadob egy üzenetet, hogy "404 – A keresett file nem található szerverünkön!"
Ha viszont az adott domain-hez nincs megadva könyvtár, akkor a user kap egy üzenetet, hogy eltéved az internet dzsungelében, és bocs.. :)
Remélem más is hasznát veszi, nekem tetszik, mert nem kell szenvednem a szerver konfiggal…
Egy ötletként megjegyezném, hogy az index.php-vel azonos könyvtárba érdemes egy .htaccess fájlt is elhelyezni, melynek a tartalma a következő legyen:
Ezután bármely fájlt próbálják meghívni a szerveren (pl. egy teszt.php-t, vagy egy nemlétező phpinfo.php-t), mindig az index.php-ra fognak jutni. Ez köszönhető annak, hogy a nemlétező fájl meghívásakor egy 404-es hibát kapnak, ami meghívja az index.php-t.
(Zárójeles megjegyzés: a tutorial-ban szereplő módszert még akkor is érdemes használni, ha pl. ingyenes szolgáltatónál van egy regisztrált tárhelyünk, és ugyanarra a tárhelyre több különböző oldalt szeretnénk feltenni.)
A szkript egyetlen apró szépséghibája, hogy a kezdőlapunknak MINDENKÉPP index.php-nak kell lennie minden domain esetében!
Ha más nincs, nevezzük át a html filet, az eredmény ugyanaz lesz.
szerző: BlackY
Itt találhatsz elég sok infót a domain átirányításokról!
hxxp://www.domain-atiranyitas.cn.hu