Il blog di
Maurizio Pelizzone

UrlRewrite con ASP.NET

Per chi cerca di progettare siti prestando attenzione ai fondamenti SEO sa quanto è importante avere delle pagine il cui nome racchiude keywords significative.

Quando però la complessità dei siti aumenta, e risulta necessario strutturare le informazioni, è impensabile pensare di creare manualmente tutte le pagine.

Ci si trova quindi a selezionare dal nostro database una porzione di dati con una sitassi simile a questa.

www.nomesito.ext/nomepagina.php?id=123

In questi casi ci viene in aiuto Apache, che grazie a mod-rewrite ed al nostro fido .htaccess ci permette di fare piccole magie, trasformando il link in qualcosa di più sensato, mantenendo comunque inalterata la dinamicità del pagina.

www.nomesito.ext/pagina-che-parla-di-keywords/

Questo, ai motori di ricerca piace un casino …

Ma nei casi in cui mod-rewrite con sia disponibile per motivi dovuti al tipo di piattaforma usata ( IIS + .Net ) come si può fare ?

Per IIS esistono dei surrogati, alcuni gratuti ed altri a pagamento, che però richiedono l’installazione di una dll, ed in alcuni casi per la gestione delle regole, bisogna rivolgarsi all’amministratore della macchina.

Quindi per i domini in hosting condiviso vuol dire “niente url rewrite“.

Ma un bel giorno arriva .net e le cose cambiano.

Ok, diciamo però che non abbiamo voglia di scrivere codice … ecco la pappa-pronta

Ricapitoliamo: Ho un sito sotto IIS scritto sviluppato con .aspx sul quale voglio applicare alcune regole di url rewrite.

Le cose da fare:

  • Prendo UrlRewritingNet.UrlRewriter.dll e la copio sotto la cartella bin
  • Preparo un web.config simile a questo
  • Aggiungo e/o modifico le regole nella sezione rewrites

Oltre alla semplice sostituzione, è presente un potente supporto per la valutazione delle espressioni regolari che ha risolto parecchi dei miei problemi.

Tramite l’interfaccia di amministrazione (lato server) è possibile associare anche altre estensioni (es. htm) al motore .net in modo tale da autorizzare la sostituzione con file non .aspx.

Altri link sull’argomento:

Update:
Un grazie a Nick per la segnalazione del refuso ( sono troppo un figlio dell’ignoranza … )

.:: Maurizio Pelizzone
.:: Maurizio Pelizzone

Sono Maurizio Pelizzone, mi occupo di #wordpress per lavoro realizzando siti, temi e plugin personalizzati.
Quando serve faccio anche consulenza e formazione a distanza su WordPress, Woocommerce e Gutenberg

3 commenti

  1. ciao, non sviluppo in .NET però ho visto che è la soluzione migliore per URLRewrting in IIS. Volevo sapere se mi potresti dare una mano risolvere la mia questione. Ho un mio sito su server Windows (IIS), supporta .NET, e sviluppato interamente in ASP. Volevo sapere come posso procedere ad attivare URLRewriting; ed in particolare il file /readprofile.asp?id=23 voglio che venga tradotto in /nomeutente oppure /profile/nomeprofile. Aspetto tue notizie. Grazie.

  2. tomhead, quello che chiedi si può fare solo installando un filtro isapi_rewrite sul server web che ospita il tuo sito. L’isapi asp.dll non implementa l’url rewrite, per cui ti devi affidare a prodotti di terze parti. Morale: se sei il proporietario del server o hai accesso come amministratore al server, allora puoi installare un filtro isapi che faccia quanto ti serve, altrimenti non cìè nulla che tu poss fare da script asp (o da .net, essendo comunque il tuo sito asp).
    Ti rimando a questo articolo di msdn
    http://msdn.microsoft.com/en-us/library/ms972974.aspx

    ciao

  3. Ciao, ho seguito tutti i passi descritti ma mi dà questo errore:
    Unrecognized element ‘rewrites’

    Come mai?

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *