2013-06-19 3 views
1

Я не могу понять, как решить эту проблему с помощью перезаписи URL:IIS переписывания URL

URLs следующей этой модели

приложения /(.*)

должен быть перенаправлен на приложение/индекс .cshtml

Однако папка приложения содержит такие ресурсы, как подпапки, js-файлы и html-файлы. Они должны быть проигнорированы, и никакое перенаправление не должно выполняться.

Вот как Ive сделали это:

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

Я только пытался исключить JS файлов, но когда я просматриваю к приложению/someurl, я получаю сообщение об ошибке, потому что один из файлов JS не может быть загружен. Я думаю, это потому, что первое правило не работает.

Вы можете помочь?

+0

при каких условиях (ы) должны быть проигнорированы редирект? только когда в подпапках И запрашивает js-файлы или html-файлы? – cheesemacfly

+0

перенаправление должно игнорироваться при запросе файлов js и html-файлов внутри папки приложения, а также в подпапках – Sam

ответ

2

Это то, что я в конечном итоге делает:

<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

Довольно уверен, что если вы сохраните только два первых условия, они должны работать так, как вы ожидаете. – cheesemacfly

+0

действительно, вы правы, спасибо! – Sam

Смежные вопросы