Problema, domanda

Quando provo a configurare le regole di riscrittura in IIS con il dispatcher installato ottengo errori "500".  Come faccio a impostare il modulo Riscrittura URL IIS7 in modo che funzioni con il dispatcher CQ?

Risoluzione, risposta

Impostare IIS 7.x

Per le istruzioni su come installare IIS7.x consulta:
http://learn.iis.net/page.aspx/29/installing-iis-7-on-windows-server-2008-or-windows-server-2008-r2/

Quando installi IIS, assicurati di attivare tutte le funzioni.

Impostare la Riscrittura URL IIS

Avrai bisogno del modulo Riscrittura URL IIS.  Per installarlo, fai clic sul pulsante di installazione sul lato destro di questa pagina web:
http://www.iis.net/download/urlrewrite

Impostare il Dispatcher

Per installare il dispatcher in IIS7, consulta:
http://dev.day.com/docs/en/cq/current/deploying/dispatcher.html#Microsoft%20Information%20Server

Configurare Riscrittura URL in modo che funzioni con la compressione gzip

In questo passaggio configureremo la funzione IIS di compressione gzip in modo che funzioni con la riscrittura dell'output URL (con una configurazione predefinita queste due caratteristiche sono in conflitto).

  1. Vai su “Start” -> “Strumenti amministrativi” -> “Internet Information Services (IIS) Manager”
  2. Nel gestore IIS, sfoglia la struttura ad albero e seleziona il sito IIS dove è stato configurato il dispatcher.
  3. Fai doppio clic su “Compressione”
  4. Deseleziona “Abilita compressione statica del contenuto”
  5. Vai su Start e fai clic
  6. Nella casella di modifica “Cerca programmi e file”, inserisci “cmd” e premi Ctrl+Shift+Enter (questo eseguirà il comando come Amministratore)
  7. Nel prompt dei comandi amministratore inserisci quanto segue per aggiungere la voce di registro LogRewrittenUrlEnabled:
    reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v LogRewrittenUrlEnabled /t REG_DWORD /d 0
  8. Torna alla finestra “Internet Information Services (IIS) Manager” e di nuovo al sito Web del dispatcher. Quindi fai doppio clic su “Modifica configurazione” e verifica che la proprietà dynamicCompressionBeforeCache sia impostata su False per l'elemento di configurazione /system.webServer/urlCompression.
  9. Torna alla visualizzazione del sito principale (facendo clic sul sito nell'albero di sinistra)
  10. Fai doppio clic su “Moduli”
  11. Nella schermata dei moduli, sul lato destro fai clic su “Visualizza elenco degli ordini...”
  12. Sposta il modulo Riscrittura URL (RewriteModule) sotto il modulo Compressione dinamica (DynamicCompressionModule)

Configurare le regole di riscrittura dei campioni

In questa fase, configureremo alcune regole di riscrittura di esempio per il sito web www.geometrixx.com. Queste regole riscriveranno gli URL di estensione .html in modo che non contengano più /content/geometrixx. Ad esempio, andando direttamente ad un'istanza di pubblicazione CQ5 , si può accedere a http://localhost:4503/content/geometrixx/en.html. Con queste regole di riscrittura, se si accede al server IIS usando l'hostname del dns www.geometrixx.com allora si può andare su http://www.geometrixx.com/en.html e accedere a /content/geometrixx/en.html.

Per configurare regole di riscrittura che funzionano in modo coerente con il modulo dispatcher, è necessario configurarle a livello di server. Inoltre, è molto più veloce configurare queste regole modificando il file xml di IIS applicationHost.config che usando l'interfaccia utente, quindi queste istruzioni seguiranno questo metodo.

  1. Vai su “Start”
  2. Inserisci il testo “blocco note” nella casella “Cerca programmi e file” e premi Ctrl+Shift+Enter (che eseguirà il comando come Amministratore)
  3. Fai clic su “Sì” nel popup che appare chiedendo “Permettere al seguente programma di apportare modifiche a questo computer?”
  4. Nel blocco note vai su “File” -> “Apri”
  5. Nella finestra di dialogo copia/incolla questo percorso: c:\Windows\system32\inetsrv\config\applicationHost.config e premi Invio. Ora il contenuto del file applicationHost.config dovrebbe essere visualizzato nel blocco note.
  6. Copia / Incolla il seguente testo subito prima del tag xml finale </system.webServer>
    <rewrite>
    <globalRules>
    <rule name="Root Context 1" enabled="true">
    <match url="^(.*)\.html(.*)" />
    <action type="Rewrite" url="/content/geometrixx/{R:1}.html{R:2}" appendQueryString="false" />
    <conditions>
    <add input="{HTTP_HOST}" pattern="^www.geometrixx.com" />
    <add input="{REQUEST_URI}" pattern="^/etc/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/etc$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/bin/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/system/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/libs/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/libs$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/var/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/tmp/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/tmp$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/crx/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/crx$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/content/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/crxde$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/apps/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/apps$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/scripts/disp_iis" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/dispatcher/invalidate" negate="true" />
    </conditions>
    </rule>
    </globalRules>
    <outboundRules>
    <rule name="rewrite output" enabled="true">
    <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/content/geometrixx/(.*)\.html(.*)$" />
    <action type="Rewrite" value="/{R:1}.html{R:2}" />
    <conditions>
    </conditions>
    </rule>
    </outboundRules>
    </rewrite>
  7. Nel blocco note premi Ctrl+s per salvare
  8. Vai su “Start” -> “Strumenti amministrativi” -> “Internet Information Services (IIS) Manager”
  9. Seleziona/Espandi il nodo superiore dell'albero (l'icona del server)
  10. Fai clic con il tasto destro del mouse sull'icona del server e fai clic su “Stop” per fermare il server.
  11. Non appena si ferma, torna indietro e fai clic su “Start”
  12. Seleziona l'icona Server in IIS Manager
  13. Nel pannello di destra, fai doppio clic su “Riscrittura URL”
  14. Ora dovresti vedere le regole di esempio che abbiamo aggiunto tramite i file xml

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online