2011-10-02 7 views
6

Avendo un problema con i miei urlrewrites - ogni volta che punto a una pagina che deve essere riscritta non riesce a visualizzare perché si applica anche la regola ai file cs & js che sono referenziato all'interno della mia pagina web.IIS riscrittura url - css e js vengono riscritti in modo errato

Per provare a porre rimedio a ciò, ho inserito un percorso completo per css e js - questo si adatta bene a qualsiasi pagina in cui la riscrittura non è ancora applicata quando provo ad accedere a una pagina riscritta che il browser blocca.

Qualcuno ha riscontrato qualcosa di simile e se sì hai una soluzione? Apprezzo qualsiasi aiuto. Ho cercato sul sito problemi simili, ma nessuno mi ha aiutato finora.

<rewrite> 
<outboundRules> 
<rule name="OutboundRewriteUserFriendlyURL1" preCondition="ResponseIsHtml1" stopProcessing="true"> 
<match filterByTags="A, Form, Img" pattern="^(.*/)myapplicationname/Index\.html\?team=([^=&amp;]+)$" /> 
<action type="Rewrite" value="{R:1}team/{R:2}/" /> 
</rule> 
<preConditions> 
<preCondition name="ResponseIsHtml1"> 
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> 
</preCondition> 
</preConditions> 
</outboundRules> 
<rules> 
<rule name="RedirectUserFriendlyURL1" stopProcessing="true"> 
<match url="^myapplicationname/Index\.html$" /> 
<conditions> 
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" /> 
<add input="{QUERY_STRING}" pattern="^([^=&amp;]+)=([^=&amp;]+)$" /> 
</conditions> 
<action type="Redirect" url="{C:1}/{C:2}" appendQueryString="false" /> 
</rule> 
<rule name="RewriteUserFriendlyURL1" stopProcessing="true"> 
<match url="^([^/]+)/([^/]+)/?$" /> 
<conditions> 
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
</conditions> 
<action type="Rewrite" url="Index.html?{R:1}={R:2}" appendQueryString="false" /> 
</rule> 
</rules> 
</rewrite> 

entro mia pagina web:

<script src="/myapplicationname/Scripts/jquery-1.4.1.js" type="text/javascript"> </script> 
<link href="/myapplicationname/Styles/MainStyle.css" rel="stylesheet" type="text/css" /> 

si è applicare la riscrittura di questi e cercando di trovare /myapplicationname/Team/Styles/MainStyle.css e simili con il file JS.

risposta

4

Cercare di scoprire quale regola causa il problema rimuovendole una alla volta. Ora aggiungere una condizione a questa regola:

<rule name="Some rule"> 
     ... 
     <conditions logicalGrouping="MatchAny"> 
      <add input="{URL}" pattern="^.*\.(ashx|axd|css|gif|png|jpg|jpeg|js|flv|f4v)$" negate="true" /> 
     </conditions> 
    </rule> 

Questo permetterà di evitare l'esecuzione della regola sul file che terminano con .js, css, ecc

Problemi correlati