hogyan lehet elrejteni a .php fájlkiterjesztés az IIS URL Rewrite modullal

kiterjesztés nélküli URL-ek az IIS – ben

néha fontos eltávolítani vagy elrejteni a használt szkriptek fájlkiterjesztését. A homály által okozott biztonság lehet az oka, ha nem akarja, hogy mások tudják, milyen szkriptnyelvet használ a webhelyéhez, vagy statikus webhely-házigazdákhoz. Ez a példa elrejti az .php kiterjesztést az IIS URL Rewrite modul használatával, egy használatra kész weben.config &.htaccess példa.

miért van szükség a fájlkiterjesztések elrejtésére az URL-ekben?

nem vagyok a homály által okozott biztonság rajongója, és soha nem találkoztam ezzel a biztonsági vizsgálat eredményeként.

a homály által okozott biztonság az egyik oka annak, hogy elrejtse a fájlkiterjesztést az URL-ekben, ha nem akarja, hogy mások tudják, milyen szkriptnyelvet használ a webhelyéhez. A keresőoptimalizálás (SEO) egy másik érvényes ok, vagy talán csak nyilvánvaló ok nélkül el akarja rejteni a fájlkiterjesztést.

a SEO-nak sincs előnye, amennyire tudom.

ezzel a technikával azonban egy kicsit lerövidítheti az URL-eket. Négy-öt karaktert leborotvál az URL-ből (“.php”,”.html”,”.aspx”). Egyesek szerint a webhely gyorsabban teljesít, mert a webszerver a Kiterjesztések nélküli URL-eket gyorsabban illesztheti a mappákhoz (könyvtárakhoz), mint a fájl kiterjesztésű URL-eket.

egyesek szerint. Nincs adatom vagy további információm erről.

Elrejtés .php kiterjesztés URL Rewrite modullal az IIS-en

itt van egy IIS URL Rewrite modul példa az elrejtésre .php kiterjesztés URL-ben.

ez a technika az Apache-ban Multiviews vagy Content Negotiation néven is ismert, mások pedig extensionless URL-eknek hívják. Lásd alább egy példát használni .htaccess az IIS-ben.

a MultiViews-ról vagy a tartalom egyeztetéséről:

a MultiViews hatása a következő: ha a szerver kérést kap a /some/dir/foo-ra, ha a /some/dir engedélyezve van a MultiViews-ra, és a /some/dir/foo nem létezik, akkor a szerver beolvassa a könyvtárat a foo nevű fájlok után kutatva.* , és hatékonyan meghamisít egy típustérképet, amely megnevezi az összes fájlt, ugyanazokat a médiatípusokat és tartalomkódolásokat rendelve hozzájuk, amelyek akkor lennének, ha az ügyfél név szerint kérte volna az egyiket. Ezután kiválasztja az ügyfél igényeinek leginkább megfelelőt.

tegye a következő átírást egy web.config fájlba a .php kiterjesztés az URL. Nos, a példa nem igazán elrejteni .php az URL-ből, de ez lehetővé teszi a kiterjesztés nélküli URL-ek használatát, mint a www.example.com/index.

az IIS URL-átírási modulja hozzáadja az .php részt a háttérben lévő URL-hez.

Code language: HTML, XML (xml)

Hide kiterjesztés kérések már tartalmazó .php kiterjesztés

egy kibővített példa az összes kérés átirányítása .php A kiterjesztés nélküli változat URL-jében. Tehát, amikor egy látogató a /index.php – en keresztül érkezik, a kiterjesztés le van húzva, és /index – re lesz irányítva.

átírási szabályunk leképezi a végső kérést az Indexre.php A kiterjesztés megjelenítése nélkül.

Code language: HTML, XML (xml)

az ilyen példákat mindig tesztelje, mielőtt gyártásba kerülne.

emulálja az Apache Multiviews-t az IIS-ben a használatával .htaccess fájl és Helicon Ape

ha használja .htaccess az IIS-ben ugyanazt a Multiviews hatást hozhatja létre a .php kiterjesztés. Ahhoz, hogy ez megtörténjen, meg kell adnunk néhány átírási feltételt és átírási szabályt (RewriteCond és RewriteRule). A szép része, ez is működik a Linux, Apache és mod_rewrite, így ez a megoldás cross-platform!

Multiviews.htaccess példa
a .htaccess fájlban adja hozzá a következő átírási konfigurációt:

Code language: Apache (apache)

.htaccess szabályok magyarázata:
az első kódblokk két RewriteCond ellenőrzést használ annak ellenőrzésére, hogy az URL fájl vagy mappa-e. Ez teljesebb, világosabb és gyorsabb, mint kivétel létrehozása minden lehetséges fájltípushoz. A RewriteRule átírja az URL – t – amely többnyire nem tartalmaz fájlkiterjesztést-egy ilyen nevű PHP fájlba.

a minta ^(+)(?:/(.+))?$ a következőképpen magyarázható:

  1. a ^ és $ mellékelő karakterek a karakterlánc elejét és végét jelölik; ami megakadályozza, hogy a szabály néha csak az URL egy részének egyezzen meg
  2. a (+) csoport a PHP fájl nevének – ként felel meg. És megtalálja az összes karaktert egy perjelig, vagy a karakterlánc végéig
  3. a blokk (?:/(+).)? megpróbálja megtalálni a perjelet, majd más karaktereket, és elmenti

a .php?(?2p=) csere feltételes hivatkozást használ:

  • a lekérdezési karakterlánc p= – vel van kitöltve, ha létezik.

végül hozzáadunk egy szabályt, amely elrejti a .php kiterjesztés.

ez megakadályozza, hogy a keresőmotor duplikált tartalmat találjon, és így megakadályozza a webhely keresési eredményekben elfoglalt helyének büntetését.

vannak más módok is.

Eltávolítás .php kiterjesztés .htaccess URL-ek

, hogy távolítsa el a .php kiterjesztés egy URL-ből .htaccess, mentheti a következőket egy új.htaccess fájl:

Code language: Apache (apache)
Code language: Apache (apache)

vagy használja MultiViews:

Code language: Apache (apache)

ez eltávolítja a kiterjesztést, így az URL-ek felhasználóbarátabbá és-egyesek szerint-SEO keresőmotor-barátabbá válnak. Használja azt, ami a legjobban megfelel Önnek, és adjon hozzá egy kanonikus metacímkét a HTML-fejébe, hogy elkerülje a duplikált tartalmat (adott esetben).

Szia, A nevem Jan. Nem vagyok hacker, kódoló, fejlesztő vagy guru. Én csak egy rendszergazda, ezzel a napi dolog Vevida (része Yourhosting) / CLDIN.

ha több hirdetés-és nyomkövetés-mentes weboldal élményt szeretne, kérjük, támogasson egy kis adományt (backme.org) vagy Paypal.

a megosztás gondoskodó

Write a Comment

Az e-mail-címet nem tesszük közzé.