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?
- Elrejtés .php kiterjesztés URL Rewrite modullal az IIS-en
- Hide kiterjesztés kérések már tartalmazó .php kiterjesztés
- emulálja az Apache Multiviews-t az IIS-ben a használatával .htaccess fájl és Helicon Ape
- Eltávolítás .php kiterjesztés .htaccess URL-ek
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ó:
- 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 - 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
- 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, halé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.