2009-08-19 29 views
0

嘿,我有一個關於 IIS7重寫的問題。II7重寫問題 - 排除頁面

我想知道是否有一種方法來設置 重寫網址的條件。我想 改寫:

http://www.domain.com/user.aspx?id=username

成爲

http://www.domain.com/username/

我也有

http://www.domain.com/article.aspx http://www.domain.com/login.aspx

,我想那些成爲

http://www.domain.com/article/ http://www.domain.com/login/

我遇到的問題是,如果我設置 了重寫的用戶名 重寫的文章和登錄中斷。

我需要以某種方式排除那些從 的用戶名重寫,使他們 可以自己處理。

這裏是我當前的代碼,即時通訊在 時刻改寫 用戶名到/用戶/用戶名:

<rewrite> 
    <rules> 
    <rule name="Rewrite user accounts2"> 
     <match url="user/([_0-9a-z-]+)"/> 
     <action type="Rewrite" url="user.aspx?id={R:1}"/> 
    </rule> 
    <rule name="Rewrite user accounts"> 
     <match url="user/([_0-9a-z-]+)/"/> 
     <action type="Rewrite" url="user.aspx?id={R:1}"/> 
    </rule> 
    </rules> 
</rewrite> 

回答

0

如果您在頂部加入文章/登錄規則,並添加stopProcessing =」真實「,那麼你不必使用條件。

<rewrite> 
    <rules> 
    <rule name="Login" stopProcessing="true"> 
     <match url="login/?"/> 
     <action type="Rewrite" url="login.aspx"/> 
    </rule> 
    <rule name="Article" stopProcessing="true"> 
     <match url="article/?"/> 
     <action type="Rewrite" url="article.aspx"/> 
    </rule> 
    <rule name="Rewrite user accounts2" stopProcessing="true"> 
     <match url="user/([_0-9a-z-]+)/?"/> 
     <action type="Rewrite" url="user.aspx?id={R:1}"/> 
    </rule> 
    </rules> 
</rewrite> 

PS。問號使前面的字符可選。

+0

非常感謝Fabian,這只是問題的一部分。 說我想拿走/用戶/,只是使帳戶domain.com/username/我如何阻止它與登錄/文章重寫衝突? 馬特 – bExplosion 2009-08-21 14:22:37

+0

你很歡迎:)。 您可以在我寫的示例中刪除用戶/匹配網址。 所以當它沒有登錄或文章,它會檢查「([_0-9a-z - ] +)/?」並相應地重寫。 – Fabian 2009-08-21 15:16:15