II7重写问题 - 不包括页面

时间:2009-08-19 15:11:32

标签: url iis-7 rewrite

  嘿所有,我有一个问题   IIS7重写。

     

我想知道是否有办法设置   重写网址的条件。我   想要改写:

     
    

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/

  
     

我遇到的问题是如果我设定的话   重写用户名的重写   重写文章和登录休息。

     

我需要以某种方式排除那些   用户名重写,以便他们   可以自己处理。

     

这是我目前的代码,即重写   用户名为/ user / username   时刻:

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

1 个答案:

答案 0 :(得分:0)

如果您在顶部添加文章/登录规则并向其添加stopProcessing =“true”,则您不必使用条件。

<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。该问号使前面的字符可选。