Extensieloze URL ‘ s in IIS
soms is het belangrijk om de bestandsextensie van scripts die u gebruikt te verwijderen of te verbergen. Beveiliging door obscuriteit kan die reden zijn, als je niet wilt dat anderen weten welke scripttaal je gebruikt voor je website, of voor statische site hosts. Dit voorbeeld zal de .php
extensie verbergen met behulp van de IIS URL Rewrite module, in een gebruiksklaar web.config & .htaccess voorbeeld.
- Waarom moeten bestandsextensies in URL ‘ s worden verborgen?
- verbergen .php extensie met URL Rewrite Module op IIS
- extensie verbergen voor verzoeken die al een bevatten .php extensie
- emuleer Apache Multiviews in IIS met behulp van a .htaccess-bestand en Helicon Ape
- verwijderen .php extensie met .htaccess van URL ‘ s
Waarom moeten bestandsextensies in URL ‘ s worden verborgen?
ik ben geen fan van beveiliging door obscurity, en ik ben dit nooit tegengekomen als resultaat van een beveiligingsscan.
beveiliging door obscuriteit is een reden om de bestandsextensie te verbergen in URL ‘ s, als u niet wilt dat anderen weten welke scripttaal u gebruikt voor uw website. Search Engine Optimization (SEO) is een andere geldige reden, of misschien wilt u gewoon de bestandsextensie te verbergen zonder duidelijke reden.
er is ook geen voordeel voor SEO, voor zover ik weet.
u kunt deze techniek echter gebruiken om URL ‘ s een beetje in te korten. Het scheert vier tot vijf tekens van de URL (“.php”,”.HTML”, “.aspx”). En sommigen zeggen dat een website sneller presteert omdat een webserver URL ’s zonder extensies naar mappen (mappen) sneller kan matchen dan URL’ s met een extensie naar een bestand.
zeggen sommigen. Ik heb hier geen gegevens of verdere informatie over.
verbergen .php extensie met URL Rewrite Module op IIS
hier is een IIS URL Rewrite Module voorbeeld voor u te verbergen .php extensie in URL ‘ s.
deze techniek staat ook bekend als Multiviews of Contentonderhandeling in Apache, en anderen noemen het extensieloze URL ‘ s. Zie hieronder voor een voorbeeld om mee te gebruiken .htaccess in IIS.
over MultiViews, of contentonderhandeling:
het effect van MultiViews is als volgt: als de server een verzoek ontvangt voor /some/dir/foo, als /some/dir MultiViews heeft ingeschakeld, en /some/dir/foo niet bestaat, dan leest de server de map op zoek naar bestanden met de naam foo.* , en effectief fakes up van een type kaart die namen al die bestanden, het toewijzen van hen dezelfde media types en inhoud-coderingen zou hebben als de client had gevraagd om een van hen bij naam. Het kiest dan de beste match om de eisen van de klant.
plaats de volgende herschrijving in een web.config
bestand om het te verbergen .php extensie in uw URL ‘ s. goed, het voorbeeld niet echt verbergen .php van de URL, maar dit laat je toe om extensieloze URL ‘ s zoals www.example.com/index
te gebruiken.
IIS ‘ URL Rewrite Module voegt het .php
deel toe aan de URL op de achtergrond.
Code language: HTML, XML (xml)
extensie verbergen voor verzoeken die al een bevatten .php extensie
een meer uitgebreid voorbeeld is het omleiden van alle aanvragen met .php in de URL naar hun extensie-minder variant. Dus wanneer een bezoeker binnenkomt via /index.php
, wordt de extensie verwijderd en zal hij worden doorverwezen naar /index
.
onze herschrijfregel geeft dat laatste verzoek terug aan index.php ZONDER de extensie weer te geven.
Code language: HTML, XML (xml)
test dergelijke voorbeelden altijd voordat ze in productie worden genomen.
emuleer Apache Multiviews in IIS met behulp van a .htaccess-bestand en Helicon Ape
Als u dit gebruikt .htaccess in IIS kunt u hetzelfde Multiviews effect te verbergen .php extensie. Om dit te laten gebeuren moet je een aantal herschrijf Voorwaarden en herschrijf regels (RewriteCond
en RewriteRule
). Het leuke is, dit zou ook moeten werken met Linux, Apache en mod_rewrite, waardoor deze oplossing cross-platform!
Multiviews .htaccess voorbeeld
voeg in uw .htaccess
bestand de volgende configuratie toe:
Code language: Apache (apache)
.uitleg htaccess regels:
het eerste codeblok gebruikt twee RewriteCond
controles om te controleren of de URL een bestand of map is. Dit is vollediger, duidelijker en sneller dan om een uitzondering voor elk bestandstype mogelijk te maken. RewriteRule
herschrijft de URL – die meestal geen bestandsextensie bevat-naar een PHP-bestand met die naam.
het patroon ^(+)(?:/(.+))?$
wordt als volgt uitgelegd:
- de tekens
^
en$
markeren het begin en het einde van de tekenreeks; waardoor de regel soms niet overeenkomt met slechts een deel van de URL - de groep
(+)
komt overeen met de naam van het PHP-bestand als. En het vindt alle tekens tot een slash, Of het einde van de tekenreeks
- het blok
(?:/(+).)?
probeert een slash te vinden, gevolgd door andere tekens, en slaat het op als
de vervanging .php?(?2p=)
gebruikt een voorwaardelijke verwijzing:
- de query string is gevuld met
p=
alsbestaat.
ten slotte wordt een regel toegevoegd die de verbergt .php extensie.
dit voorkomt dat een zoekmachine dubbele inhoud kan vinden en voorkomt zo een boete voor de positie van uw site in de zoekresultaten.
er zijn ook andere manieren.
verwijderen .php extensie met .htaccess van URL ‘ s
om de .php extensie van een URL met .htaccess, kunt u het volgende opslaan in een nieuwe .htaccess-bestand:
Code language: Apache (apache)
Code language: Apache (apache)
of gebruik MultiViews:
Code language: Apache (apache)
dit verwijdert de uitbreiding waardoor de URL ‘ s meer gebruiker en-sommigen zeggen – SEO zoekmachine vriendelijk. Gebruik wat het beste werkt voor u, en voeg een canonieke meta tag in uw HTML head om dubbele inhoud te voorkomen (waar van toepassing).
Hallo, mijn naam is Jan. Ik ben geen hacker, coder, Ontwikkelaar of goeroe. Ik ben slechts een systeembeheerder, doen mijn dagelijkse ding op Vevida (onderdeel van Yourhosting) / CLDIN.
als u een meer advertentie – en tracking-vrije website ervaring wilt, gelieve BackMe met een kleine donatie (backme.org) of Paypal.