Gondolom nem vagyok egyedül, amikor azt mondom, hogy lassan kezdenek unalmassá válni a .php, .html, .asp és ehhez hasonló kiterjesztések az url-ek végén. Pár perc alatt “készíthetünk” egyéni kiterjesztéseket weben közzétett fájljainknak, ráadásul az eredeti fájl- és könyvtárstruktúra megtartásával.
Példának vegyük a következőt: szeretném, ha a weblapomon az unalomig ismert .php kiterjesztés helyett .blacky kiterjesztéssel kerülnének fel a fájljaim. Egyik – kézenfekvő – lehetőség, hogy átnevezgetem őket, azonban ekkor nem valószínű, hogy az Apache átküldi a php fordítón a fájlokat, és a korábbi linkelés többé nem fog működni, így például a Kedvencekbe mentett linkek 404-et adnának. (Persze az első problémát, a PHP feldolgozást, egy AddType direktívával .htaccess-ből vagy httpd.conf-ból megoldhatnánk)
Megintcsak az Apache-hoz készült mod_rewrite-ot fogjuk használni. Az adott könyvtárban hozzunk létre egy .htaccess fájlt, és töltsük fel a következő tartalommal:
1 2 3 4 | <IfModule mod_rewrite.c> RewriteEngine On RewriteRule (.+).blacky(\?[.+?])?$ $1.php$2 </IfModule> |
Nézzük sorban: az IfModule rész (ami az
A következő sorban a RewriteEngine direktíva On értékre állításával bekapcsoljuk az újraírót, majd megadunk neki egy szabályt. Azoknak, akik jártasak a reguláris kifejezések (RegExp) világában, ismerős lehet. “Magyarra fordítva” a következő jelenti nagyjából: Ha a kért url bármilyen karakterből legalább eggyel kezdődik, majd van benne egy .blacky szöveg, majd van vagy egy kérdőjel után álló bármilyen sorozat vagy nem, akkor írd újra az url-t úgy, hogy a .blacky előtt álló rész mögé írj egy .php-t, majd ha valami állt a .blacky után, akkor azt a végére.
És így lesz mondjuk az /about.blacky url-ből /about.php, vagy a /hirek.php?hirazonosito=12-ből /hirek.blacky?hirazonosito=12.
Ezután már csak az oldalainkon található linkelést kell átírnunk, és kész is vagyunk az egyéniesített fájlnevekkel. Azon túl, hogy “személyesebbek” lehetnek a fájljaink még egy plusz biztonsági szintet is beépítettünk: még a PHP kézikönyv is ír az A PHP elrejtése c. fejezetében a fájl típus regtegetéséről. Nem nagy védelem, de ha már egy script kiddiet elijesztett oldalunk feltörésétől (vagy akár az erre tett kísérlettől) már hasznos volt.
Természetesen ennél még sokkal többet ki lehet hozni a mod_rewrite-ból, rengeteg további lehetőség van a mod_rewrite-ban…
ez nekem nem nagyon akar működni…
Ennél több infót légyszíves ne mondj, szeretnénk kitalálni, vajon mi lehet a probléma mert túl sok szabadidővel rendelkezünk és találgatni olyan izgalmas dolog. ;)
hm nekem se akaar működni..
Csináltam egy .htacces-t, abba bemásoltam amit írtál, aztán csináltam egy teszt.blacky-t és azt írja ki hogy 404 error.
1. Milyen szerver? htaccess támogatás (Alow override a httpd.conf-ban) van? mod_rewirte van?
2. A fenti lényege pont az, hogy nem teszt.blacky-t csinálsz, hanem teszt.php-t, csak a böngészőből hívod meg teszt.blacky néven!
BlackY
Nincs benne a RewriteBase / azért nem működött nekik.
RewriteEngine On
RewriteBase /
RewriteRule (.+).blacky(?[.+?])?$ $1.php$2
általában az ingyenes szolgáltatók nem engedélyezik a .htacces használatát. szóval lehet, h emiatt van a gondod.
Üdv!
Nekem működik ez az új fájl, de megoldható lenne az, hogy a .php kiterjesztést letilthassam, hogy a böngésző azt ne tudja megnyitni, vagy 404-et dobjon, és csak az uj kiterjesztést engedje (pl. index.blacky-t igen, és az index.php-t már ne)
Köszönöm…
Helló!
Így reggel az első kávé közben az egyetlen épelméjű megoldás, amit ki tudtam találni, hogy elrejted a php fileokat: fogod az összeset, bedobálod egy hidden vagy akármi könyvtárba, és átírod a htaccess-t:
Sajnos ha letiltod a *.php-hez a hozzáférést (Order deny,allow, deny from all), akkor a .blacky néven keresztül sem lehet elérni… A fenti .htaccess 404-et dob a sima php kérésekre, viszont ha egy url-be bekerül a hidden/ (vagy akármi) is, akkor gond nélkül megnyitja :(
BlackY
Üdv. Én is megpróbáltam ezt a kis trükköt, de nekem maradt minden .php
lásd: http://stoppage.szunyi.com/news.php
és engedélyezett a .htaccess, mert nem ír ki hibaüzenetet.
És mi van, ha:
AddType application/x-httpd-php .php .blacky
RewriteEngine-nel csinálva nekem így tökéletesen működött:
Hát sajnos ez nekem se akar menni akár melyiket próbáltam pedig ez tényleg jó ötlet.
juj bocsánat fegyelmetlen voltam.Működik tökkéletesen köszönöm szépen neked.
Én például a okhost.nál tároltatom a weboldalamat, és gond nélkül müködik. Csinálsz egy .htaccess filet. tehát simánt megnyits egy jegyzettömböt belemásolod a legfelül (
ezt. és elmented .htaccess így. és megvan, a másik a weboldalon nem úgy nyitsz meg egy linket hogy index.php hanem index.blacky és már müködni is fog, a másik hogy ilyenkor ajánlatos minden oldalba egy
ilyet rakni, és behívni egy php fileból a navigációt, mert elég kényes lehet minden html-php filet módosítani, főleg ha az oldal nem 3-4 php/htmlből ál. remélem ennyivel tudtam segíteni :). Üdvözlettel Raim(oldalam http://wowaddon.clanbazis.com/index.wowaddon)
Nekem ez bevállt:
csak ennyi a gondom vele h pl a domain.com/test/alma.pc-re nem hoz be semmit mert a gyökérkönyvtárból kezdi el a file/ valamit ezt h lehet megoldani?