Come nascondere il .estensione del file php con IIS URL Rewrite Module

URL senza estensione in IIS

A volte è importante rimuovere o nascondere l’estensione del file degli script utilizzati. La sicurezza per oscurità potrebbe essere questa la ragione, se non vuoi che altri sappiano quale linguaggio di script stai usando per il tuo sito web o per gli host di siti statici. Questo esempio nasconderà l’estensione .php utilizzando il modulo di riscrittura URL IIS, in un web pronto all’uso.config &.esempio htaccess.

Perché la necessità di nascondere le estensioni di file in URL?

Non sono un fan della sicurezza per oscurità e non l’ho mai riscontrato come risultato di una scansione di sicurezza.

La sicurezza per oscurità è uno dei motivi per nascondere l’estensione del file negli URL, se non vuoi che gli altri sappiano quale linguaggio di script stai usando per il tuo sito web. Search Engine Optimization (SEO) è un altro motivo valido, o forse si vuole solo nascondere l’estensione del file per nessun motivo apparente.

Non vi è alcun vantaggio per SEO, per quanto ne so.

È tuttavia possibile utilizzare questa tecnica per accorciare un po ‘ gli URL. Lo fa radere da quattro a cinque caratteri dall’URL (“.PHP”, “.HTML”, “.aspx”). E alcuni dicono che un sito Web esegue più velocemente perché un server Web può abbinare URL senza estensioni a cartelle (directory) più velocemente di URL con un’estensione a un file.

Alcuni dicono. Non ho dati o ulteriori informazioni su questo.

Nascondi .estensione php con modulo di riscrittura URL su IIS

Ecco un esempio di modulo di riscrittura URL IIS da nascondere .estensione php in URL.

Questa tecnica è anche conosciuta come Multiviews o Content Negotiation in Apache, e altri la chiamano URL senza estensione. Vedi sotto per un esempio da utilizzare con .htaccesso in IIS.

Informazioni su MultiViews o negoziazione di contenuti:

L’effetto di MultiViews è il seguente: se il server riceve una richiesta per / some / dir /foo, se/some /dir ha MultiViews abilitato e/some/dir / foo non esiste, il server legge la directory alla ricerca di file denominati foo.* , e falsifica efficacemente una mappa di tipo che nomina tutti quei file, assegnando loro gli stessi tipi di media e codifiche di contenuto che avrebbe se il client ne avesse chiesto uno per nome. Sceglie quindi la migliore corrispondenza alle esigenze del cliente.

Inserire la seguente riscrittura in un file web.config per nascondere il .estensione php nel tuo URL. Beh, l’esempio non si nasconde davvero .php dall’URL, ma questo ti permette di usare URL senza estensione come www.example.com/index.

Il modulo di riscrittura URL di IIS aggiunge la parte .php all’URL in background.

Code language: HTML, XML (xml)

Nascondi l’estensione per le richieste che contengono già un .estensione php

Un esempio più esteso è quello di reindirizzare tutte le richieste con .php nell’URL alla sua variante senza estensione. Quindi, quando un visitatore arriva attraverso /index.php, l’estensione viene spogliata e verrà indirizzato a /index.

La nostra regola di riscrittura mappa la richiesta finale all’indice.php senza visualizzare l’estensione.

Code language: HTML, XML (xml)

Testare sempre tali esempi prima di metterlo in produzione.

Emula le multiview di Apache in IIS usando un .htaccess file e Helicon Ape

Se si utilizza .htaccess in IIS è possibile creare lo stesso effetto Multiviews per nascondere il .estensione php. Perché ciò accada devi dichiarare alcune condizioni di riscrittura e riscrivere le regole (RewriteCond e RewriteRule). La parte ordinata è che questo dovrebbe funzionare anche con Linux, Apache e mod_rewrite, rendendo questa soluzione multipiattaforma!

Multiviews .esempio htaccess
Nel file .htaccess, aggiungere la seguente configurazione di riscrittura:

Code language: Apache (apache)

.spiegazione delle regole htaccess:
Il primo blocco di codice utilizza due controlli RewriteCond per verificare se l’URL è o meno un file o una cartella. Questo è più completo, chiaro e più veloce di creare un’eccezione per ogni tipo di file possibile. RewriteRule riscrive l’URL-che per lo più non contiene un’estensione di file – in un file PHP con quel nome.

Il modello ^(+)(?:/(.+))?$ è spiegato come segue:

  1. I caratteri che racchiudono ^ e $ segnano l’inizio e la fine della stringa; il che impedisce alla regola di corrispondere a volte solo una parte dell’URL
  2. Il gruppo (+)corrisponde al nome del file PHP come . Trova tutti i caratteri fino a una barra, o alla fine della stringa
  3. blocco (?:/(+).)? cerca di trovare una barra, seguito da altri caratteri, e lo salva come

La sostituzione .php?(?2p=) utilizza un condizionale di riferimento:

  • La stringa di query è riempito con p= se esiste.

Infine, viene aggiunta una regola che nasconde il .estensione php.

Ciò impedisce a un motore di ricerca di trovare contenuti duplicati e quindi impedisce una penalità per la posizione del tuo sito nei risultati di ricerca.

Ci sono anche altri modi.

Rimuovi .estensione php con .htaccess da URL

Per rimuovere il .estensione php da un URL con .htaccess, è possibile salvare quanto segue in un nuovo .file htaccess:

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

Oppure usa MultiViews:

Code language: Apache (apache)

Questo rimuove l’estensione rendendo gli URL più utente e – alcuni dicono-SEO motore di ricerca amichevole. Usa ciò che funziona meglio per te e aggiungi un meta tag canonico nella tua testa HTML per evitare contenuti duplicati (dove appropriato).

Ciao, mi chiamo Jan. Non sono un hacker, programmatore, sviluppatore o guru. Sono semplicemente un amministratore di sistemi, facendo la mia cosa quotidiana a Vevida (parte di Yourhosting) / CLDIN.

Se vuoi un’esperienza di sito web più senza pubblicità e tracciamento, ti preghiamo di fare una piccola donazione (backme.org) o Paypal.

La condivisione è la cura

Write a Comment

Il tuo indirizzo email non sarà pubblicato.