2012-03-14 27 views
9

ho le seguenti regole di riscrittura degli URL impostati:Internet Explorer ignora hashtag nell'URL

<rules> 
      <rule name="Clean URL" stopProcessing="true"> 
       <match url="^([A-Za-z0-9]+)([\?A-Za-z0-9#=&amp;]+)?$" /> 
       <action type="Rewrite" url="{R:1}.aspx{R:2}" /> 
      </rule> 
      <rule name="CleanTest" stopProcessing="true"> 
       <match url="^([a-z0-9/]+).aspx([a-zA-Z0-9\?#=&amp;]+)?$" /> 
       <action type="Redirect" url="{R:1}{R:2}" /> 
      </rule> 
     </rules> 

Quello che fa è mostrare una (non aspx) URL nella barra degli indirizzi del cliente e inoltre redirect pulita ogni chiamata URL pulita alla pagina .aspx corrispondente. Questo "generalmente" funziona bene. Tuttavia, quando il mio URL include un hashtag, ovvero Administration.aspx#first, l'hashtag manca dopo il reindirizzamento solo in IE, funziona perfettamente bene in FF/Chrome, cosa potrebbe causare questo?

Risultato dopo aver fatto clic sul link in Chrome/FF:

Administration#first

Risultato in IE (9):

Administration

Addendum: funziona perfettamente bene per get-Parametri .

Link: Login.aspx?logout=1

IE: Login?logout=1

FF/Chrome: Login?logout=1

risposta

2

Come l'hashtag è principalmente è per il browser sul lato client per sapere dove per scorrere all'interno di una pagina, Mi sembra logico che non tutti i browser lo inviino al server. Tuttavia non sono sicuro di ciò che dice la specifica a riguardo.