2010-07-11 85 views
2

我想執行一個簡單的URLRewriting。如果你訪問azamsharp.com它將採取一些文件夾瀏覽結構,它應該去http://www.azamsharp.com/AzamSharpWebApps/Default.aspxURLRewrite IIS 7

我不希望看到AzamSharpWebApps在URL:這裏是我使用的URL重寫:

<system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="Virtual Director" enabled="true" stopProcessing="false"> 
      <match url=".*" /> 
      <conditions> 
      <add input="{MyDomains:{HTTP_HOST}}" pattern="(.+)" /> 
      </conditions> 
      <action type="Rewrite" url="{C:1}{REQUEST_URI}" /> 
     </rule> 
     </rules> 
     <rewriteMaps> 
     <rewriteMap name="MyDomains"> 
      <add key="azamsharp.com" value="/AzamSharpWebApps/default.aspx" /> 
      <add key="www.azamsharp.com" value="/AzamSharpWebApps/default.aspx" /> 
     </rewriteMap> 
     </rewriteMaps> 
    </rewrite> 

    </system.webServer> 
+0

沒有人有答案! – azamsharp 2010-07-12 14:39:43

回答

1

我不知道如何IIS UrlRewrite工作,但在一般的正則表達式一級想/AzamSharpWebApps/$0

^更換^(?!/AzamSharpWebApps).+是字符串的開始,而(?! .. )是負先行,說:「請確保以下文字是不是‘/ AzamSharpWebApps’,然後+匹配任何字符直到字符串結束。

在替換方面,$0表示整個捕獲的文本 - 所以基本上正則表達式是「如果它尚未以」/ AzamSharpWebApps「開頭,則以它爲前綴。

(你需要進行實驗,你是否需要一個/前的$ 0。)

總之,看起來像IIS使用{C:0},而不是$0,只是有所不同,所以我想它的外觀這樣的規則內:

<match url="^(?!/AzamSharpWebApps).+" /> 
<action type="Rewrite" url="/AzamSharpWebApps{C:0}" /> 

但可能它需要的不僅僅是這一點。