Luca Annuiti

il mio Blog personale su Virtualizzazione, SharePoint, Programmazione e ...

Umbraco: redirect 301 con querystring nel campo virtualurl

Problema: inserendo nel file UrlRewriting.config una regola dove nel campo virtualurl un indirizzo che contiene dei paramentri, questi ultimi vengono ignorati

<add name="DEMO"
virtualUrl="/demo.aspx?PageID=1110"
destinationUrl="/new-url/"
rewriteUrlParameter="IncludeQueryStringForRewrite"
ignoreCase="true"
redirect="Domain"
redirectMode="Permanent" />
La motiviazione è semplice, il "?" è una carattere riservato, quindi è necessario modifcare la stringa con una sequenza di escape in modo che sia riconosciuta:
virtualUrl="(\/demo\.aspx\?PageID=1110)"





Umbraco: contenuti inaccessibili dopo la cancellazione di un Document Type

Purtroppo l'eliminazione di un tipo di documento rimuove tutti i nodi collegati e non sembra esserci alcun modo per recuperare questi contenuti se non quello di ripristinare un backup dell'intero sito. Si tratta di un "difetto" che sembra esistere da sempre.

L'unico modo per rimuovere dalla sezione Content gli elementi inaccessibili è ricostruire il file cache XML  richiamando l'URL http://YOURDOMAIN/Umbraco/dialogs/republish.aspx?xml=true e cliccare su "republish", eliminando in questo modo i collegamento orfani.

Altre info a questo post su issue tracker:

U4-5187 Deleting doctype wipes out all content nodes based on it

Umbraco: Redirect 301 con URL esatta

Problema: reindirizzare correttamente una pagina xyz e le relative sottopagine ad un nuovo indirizzo.

Soluzione: basta aggiungere il carattere $ alla fine dal parametro virtual url; in questo modo indichiamo di considerare la url esatta specificando che la stessa termina in quel punto.

Esempio di regola:
<add
 name="301/xyz" 
 virtualUrl="/xyz$"
 destinationUrl="/abc"
 redirectMode="Permanent" 
 redirect="Domain"
 ignoreCase="true"
 rewriteUrlParameter="IncludeQueryStringForRewrite" />

Umbraco: impostare una pagina di errore 404 personalizzata su IIS 7.5

Su IIS7 verisone 7.5, anche se è stata modificato il file umbracoSetting.config impostando l'id della pagina che vogliamo utilizzare come pagina di errore personalizzata alla voce <error404>mioId</error404>, umbraco visualizza la pagina 404 di default di IIS.

Per visulizzare correttamente la pagina personalizzata, otre alla modifica precendete, è necessario aggiungere al file web.config, nella sezione <system.webServer> la riga seguente:
<httpErrors existingResponse="PassThrough" />