RewriteBase és elérési utak

Korábban már volt szó a RewriteBase utasításról, arról, hogy erősen ajánlott a használata a htaccess átirányítások használata során. Ennek a nem, vagy nem megfelelő módon történő használata félre tudja vinni az átirányítási szándékainkat.

A RewriteBase alapvetően azt határozza meg, hogy amennyiben az átirányítás relatív módon van megadva, akkor melyik könyvtárhoz képest kell nézni az újonnan megadott átirányítási célt.

Az alábbi példákban egy-egy alkönyvtárban lévő index.html-t próbálunk átirányítani az ugyanazon könyvtárban lévő main.html-re. Nézzük a különböző verziókat, természetesen a RewriteEngine on és stb. parancsok ugyanazok!

1) /rewritebase1/index.html
RewriteBase /rewritebase1
RewriteRule ^index.html$ main.html [R,L]

Itt a könytár nevét adtuk meg RewriteBase-ként. Láthatjuk, hogy az átirányítás gond nélkül lezajlott.


2) /rewritebase2/index.html
RewriteBase /
RewriteRule ^index.html$ main.html [R,L]

Itt a főkönyvtárat adtuk meg RewriteBase-ként. Láthatjuk, hogy az átirányítás ilyenkor a főkönyvtárban lévő main.html-re ugrik, nem az adott könyvtárban lévőre.


3) /rewritebase3/index.html
RewriteRule ^index.html$ main.html [R,L]

Itt nem adtunk meg RewriteBase-t. Láthatjuk, hogy ilyenkor 404-es hibát kapunk, nem találja a file-t az átirányítás. Még érdekesebb megfigyelést is tehetünk, ha megnézzük a böngésző címsorát. Az oldalunk domain neve után a kért oldal teljes, filerendszerben lévő fizikai címe jelenik meg. Egyrészt ez nagyon hasznos akkor, ha semmiképp nem tudjuk kideríteni a file-jaink fizikai címét, amire márpedig a jelszavas védelem beállítás során szükségünk van. Másrészt lehetőleg ilyet lehetőleg soha ne csináljunk, plusz támadási felületre ad lehetőséget4


4)
/rewritebase4/index.html
RewriteRule ^index.html$ /rewritebase4/main.html [R,L]

Itt sem adtunk meg RewriteBase-t, ugyanakkor az átirányítást a főkönyvtárhoz viszonyítva, /-el indítva adtuk meg. Ilyenkor megfelelően működik az átirányítás.


A fenti példák tanulsága, hogy figyeljünk oda a RewrieBase-re. Vagy mindig adjuk meg, vagy ha nem, akkor minden átirányítást a főkönyvtárhoz viszonyítva, egy /-el kezdve vagy abszolút címzéssel (http:// stb.) adjunk meg!