cum de a ascunde .extensie de fișier php cu IIS URL Rewrite Module

URL-uri Extensionless în IIS

uneori este important să eliminați – sau să ascundeți-extensia de fișier a scripturilor pe care le utilizați. Securitatea prin obscuritate ar putea fi acest motiv, dacă nu doriți ca alții să știe ce limbaj de script utilizați pentru site-ul dvs. web sau pentru gazdele statice ale site-ului. Acest exemplu va ascunde extensia .php folosind modulul de rescriere URL IIS, într-un web gata de utilizare.config &.htaccess exemplu.

de ce necesitatea de a ascunde extensii de fișiere în URL-ul lui?

nu sunt un fan al securității prin obscuritate și nu am întâlnit niciodată acest lucru ca rezultat al unei scanări de securitate.

Security by obscurity este un motiv pentru a ascunde extensia de fișier în URL-uri, dacă nu doriți ca alții să știe ce limbă script utilizați pentru site-ul dumneavoastră. Optimizarea motorului de căutare (SEO) este un alt motiv valid sau poate doriți doar să ascundeți extensia fișierului fără un motiv aparent.

nu există nici un beneficiu pentru SEO, din câte știu.

cu toate acestea, puteți utiliza această tehnică pentru a scurta URL-ul un pic. Se rade patru până la cinci caractere de la adresa URL („.php”,”.html”, „.aspx”). Și unii spun că un site web funcționează mai repede, deoarece un server web poate potrivi URL-urile fără extensii la foldere (directoare) mai repede decât URL-urile cu o extensie la un fișier.

unii spun. Nu am date sau informații suplimentare despre acest lucru.

ascunde .extensie php cu modul de rescriere URL pe IIS

aici este un exemplu de modul de rescriere URL IIS pentru a vă ascunde .extensie php în URL-ul lui.

această tehnică este, de asemenea, cunoscută sub numele de multiviews sau negociere de conținut în Apache, iar alții o numesc URL-uri fără extensie. A se vedea mai jos pentru un exemplu de a utiliza cu .htaccess în IIS.

despre MultiViews sau negocierea conținutului:

efectul MultiViews este după cum urmează: dacă serverul primește o cerere pentru /some/dir/foo, dacă /some/dir are MultiViews activat și /some/dir/foo nu există, atunci serverul citește directorul care caută fișiere numite foo.* , și falsifică efectiv o hartă de tip care numește toate acele fișiere, atribuindu-le aceleași tipuri de media și codificări de conținut pe care le-ar avea dacă clientul ar fi cerut unul dintre ele după nume. Apoi alege cea mai bună potrivire cu cerințele clientului.

puneți următoarea rescriere într-un fișier web.config pentru a ascunde .Ei bine, exemplul nu se ascunde cu adevărat .php de la adresa URL, dar acest lucru vă permite să utilizați URL-ul fără extensie ca www.example.com/index.

modulul de rescriere URL al IIS adaugă partea .php la adresa URL din fundal.

Code language: HTML, XML (xml)

ascunde extensie pentru cererile care conțin deja un .extensia php

un exemplu mai extins este redirecționarea tuturor cererilor cu .php în URL la varianta lor fără extensii. Deci, atunci când un vizitator vine prin /index.php, extensia este dezbrăcată și el va fi direcționat către /index.

regula noastră de rescriere mapează acea solicitare finală înapoi la index.php fără a afișa extensia.

Code language: HTML, XML (xml)

testați întotdeauna astfel de exemple înainte de a le pune în producție.

emula Apache Multiviews în IIS folosind un .fișier htaccess și Helicon maimuță

dacă utilizați .htaccess în IIS puteți crea același efect Multiviews pentru a ascunde .extensie php. Pentru ca acest lucru să se întâmple, trebuie să declarați câteva condiții de rescriere și reguli de rescriere (RewriteCond și RewriteRule). Partea îngrijită este că acest lucru ar trebui să funcționeze și cu Linux, Apache și mod_rewrite, făcând această soluție cross-platform!

Multiviews .htaccess exemplu
în fișierul .htaccess, adăugați următoarea configurație de rescriere:

Code language: Apache (apache)

.htaccess reguli explicație:
primul bloc de cod utilizează două RewriteCond controale pentru a verifica dacă este sau nu URL-ul este un fișier sau folder. Acest lucru este mai complet, mai clar și mai rapid decât crearea unei excepții pentru fiecare tip de fișier posibil. RewriteRule rescrie URL – ul-care în mare parte nu conține o extensie de fișier-într-un fișier PHP cu acest nume.

modelul ^(+)(?:/(.+))?$ este explicat după cum urmează:

  1. caracterele de închidere ^ și$ marchează începutul și sfârșitul șirului; ceea ce împiedică regula să se potrivească uneori doar cu o porțiune a adresei URL
  2. grupul (+) se potrivește cu numele fișierului PHP ca . Și găsește toate caracterele până la o bară oblică sau sfârșitul șirului
  3. blocul (?:/(+).)? încearcă să găsească o bară oblică, urmată de alte caractere și o salvează ca

înlocuirea .php?(?2p=) utilizează o referință condiționată:

  • șirul de interogare este umplut cu p= dacă există.

în cele din urmă, se adaugă o regulă care ascunde .extensie php.

acest lucru împiedică un motor de căutare să găsească conținut duplicat și astfel împiedică o penalizare pentru poziția site-ului dvs. în rezultatele căutării.

există și alte căi.

eliminați .extensie php cu .htaccess de la URL-uri

pentru a elimina .extensie php de la o adresă URL cu .htaccess, puteți salva următoarele într-un nou .fișier htaccess:

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

sau utilizați MultiViews:

Code language: Apache (apache)

aceasta elimină extensia făcând URL-urile mai utilizator și – spun unii-motor de căutare SEO prietenos. Utilizați ceea ce funcționează cel mai bine pentru dvs. și adăugați o meta-etichetă canonică în capul HTML pentru a evita conținutul duplicat (acolo unde este cazul).

bună, numele meu este Jan. Eu nu sunt un hacker, coder, dezvoltator sau guru. Sunt doar un administrator de sisteme, fac lucrul meu zilnic la Vevida (parte din Yourhosting) / CLDIN.

dacă doriți o experiență mai ad – și de urmărire-free site-ul, vă rugăm să BackMe cu o mică donație (backme.org) sau Paypal.

Partajarea este grija

Write a Comment

Adresa ta de email nu va fi publicată.