301 Reindirizzamento non funziona in IIS 7
-
27-10-2019 - |
Domanda
Devo creare questa regola di reindirizzamento 301:/blog/item.asp?n=12817
reindirizzare a /blog/item/12817
Ho creato una regola nel modulo di riscrittura URL IIS con questi parametri:
Modello: ^blog/item.asp\?n=([0-9]+)
Reindirizza URL: blog/item/{R:1}
Quando lo provo in IIS funziona bene e ha creato questa regola nel mio web.config:
<rule name="Asp classic Legacy 301 redirect" stopProcessing="true">
<match url="^blog/item.asp\?n=([0-9]+)" />
<action type="Redirect" url="blog/item/{R:1}" appendQueryString="true" />
</rule>
Ma ancora quando navigo a /blog/item.asp?n=12817
Nel browser mi mostra The resource cannot be found.
errore con il testo Requested URL: /blog/item.asp
Perché può essere? Devo cambiare qualcos'altro da qualche parte?
Grazie
Soluzione
OK, ho creato un'altra regola che funziona:
<rule name="Asp classic legacy 301 redirect">
<match url="blog/item\.asp$" />
<conditions>
<add input="{QUERY_STRING}" pattern="n=(\d+)" />
</conditions>
<action type="Redirect" url="blog/item/{C:1}" redirectType="Permanent" appendQueryString="false"/>
</rule>
Mi chiedo ancora perché il modulo di riscrittura dell'URL generare regole che non funzionano?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow