2013-06-19 10 views
1

Je ne peux pas comprendre comment résoudre ce problème avec url rewriting:IIS réécriture url

suivant ce modèle urls

app /(.*)

doivent être redirigés vers app/index Toutefois, le dossier de l'application contient des ressources telles que des sous-dossiers, des fichiers js et des fichiers html. Ceux-ci devraient être ignorés et aucune redirection ne devrait être faite.

Voici comment Ive fait il:

<rewrite> 
    <rules> 
    <rule name="Rule 1" stopProcessing="true"> 
     <match url="app/(.*/.js)" /> 
     <action type="None" /> 
    </rule> 
    <rule name="Rule 2"> 
     <match url="app/(.*)" /> 
     <action type="Rewrite" url="app/index.cshtml" /> 
    </rule> 

    </rules> 
</rewrite> 

Je n'ai essayé d'exclure les fichiers js pour l'instant, mais quand je navigue app/someurl, je reçois une erreur parce que l'un des fichiers js ne peut pas être chargé. Je pense que c'est parce que la première règle ne fonctionne pas.

Pouvez-vous m'aider?

+0

quelle condition (s) si la redirection est ignorée? seulement dans les sous-dossiers ET demandant des fichiers js OU des fichiers html? La redirection – cheesemacfly

+0

doit être ignorée lors de la demande de fichiers js et de fichiers html dans le dossier de l'application ainsi que dans les sous-dossiers – Sam

Répondre

2

C'est ce que je fini par faire:

<rule name="Rule1"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{URL}" negate="true" pattern="\.axd$" /> 
     <add input="{URL}" negate="true" pattern="\.jpg$" /> 
     <add input="{URL}" negate="true" pattern="\.gif$" /> 
     <add input="{URL}" negate="true" pattern="\.png$" /> 
     <add input="{URL}" negate="true" pattern="\.css$" /> 
     <add input="{URL}" negate="true" pattern="\.ico$" /> 
     <add input="{URL}" negate="true" pattern="\.cur$" /> 
     <add input="{URL}" negate="true" pattern="\.js$" /> 
     <add input="{URL}" negate="true" pattern="\.xml$" /> 
     <add input="{URL}" negate="true" pattern="\.svg$" /> 
     <add input="{URL}" negate="true" pattern="\.ttf$" /> 
     <add input="{URL}" negate="true" pattern="\.eot$" /> 
     <add input="{URL}" negate="true" pattern="\.woff$" /> 
     <add input="{URL}" negate="true" pattern="\.html$" /> 
     </conditions> 
     <action type="Rewrite" url="app/index.cshtml" /> 
    </rule> 
+1

Vous êtes sûr que si vous ne conservez que les 2 premières conditions, cela devrait fonctionner comme prévu. – cheesemacfly

+0

en effet, vous avez raison, merci! – Sam

Questions connexes