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

È stato utile?

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
scroll top