2011-12-06 81 views
0

我有一個規則,重寫URLs,除非有一個物理文件存在(所以可以返回靜態文件) - 然而由於某些原因,規則無論如何都會被重寫,讓人非常沮喪。IIS URL重寫 - 規則捕獲,儘管文件存在

這裏是我的web.config:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

<system.webServer> 

    <rewrite> 
     <rules> 
      <clear /> 
      <rule name="Front Page"> 
       <match url="/?" /> 
       <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
       <action type="Rewrite" url="/Home/FrontPage" /> 
      </rule> 
      <rule name="Map Everything" stopProcessing="true"> 
       <match url="^(.*)$" ignoreCase="true" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile"  negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="EntryPoint.php/{R:1}" appendQueryString="true" /> 
      </rule> 

     </rules> 
    </rewrite> 

</system.webServer> 

回答

0

啊,原來的 「頭版」 的規則是問題,並且規則 「/?」在我應該使用「^ $」代替時匹配了所有內容。

解決該問題後,IsFile/IsDirectory規則得到了遵守。