Luca Annuiti

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

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" />

Umbraco: problemi nell'inserimento di link nel richtext editor

Può accadere in alcuni casi che i link con Url assolute inseriti nel RichText Editor vengano modificati eliminando il dominio e trasformati in Url relative, anche se inseriti lavorando con la modalità Sorgente HTML.

Per correggere il problema è necessario modificare il file /Config/tinyMceConfig.config aggiungendo nella sezione <CustomConfig> le seguenti righe:

<config key="relative_urls">false</config>
<config key="convert_urls">false</config>
<config key="document_base_url">http://full_url</config>

avendo cura di sostituire full_url con l'url completa del "sito".

Umbraco: errore "No Document exists with Version xxxxxxxx"

Nella gestione dei contenuti, se cliccando su un nodo viene visualizzato l'errore "No Document exists with Version xxxxxxxx", significa che c'è stato un problema nel back-end di umbraco sulle versioni del documento.

Nel dettaglio, il problema è dovuto ad un disallineamento delle versioni nelle tabelle cmsContentVersion e cmsDocument, creando così delle versioni orfane.

Utilizzando questa query è possibili visualizzare queste versioni orfane:

SELECT * FROM cmsContentVersion
WHERE
    cmsContentVersion.VersionId NOT IN (SELECT VersionId FROM cmsDocument) AND
    cmsContentVersion.ContentId IN (SELECT nodeId FROM cmsDocument)

Per risolvere il problema è necessario eseguire questa seconda query che elimina i record orfani:

DELETE FROM cmsContentVersion
WHERE
    cmsContentVersion.VersionId NOT IN (SELECT VersionId FROM cmsDocument) AND
    cmsContentVersion.ContentId IN (SELECT nodeId FROM cmsDocument)