从代码中调用urlrewrite

时间:2011-06-18 05:05:48

标签: asp.net iis iis-7 url-rewriting seo

我有一个字符串作为字符串,我想调用asp.net代码(IIS7模块),在我们的应用程序中重写URL并从中获取一个重写的URL:

http://webserver/nice/url/youHaveThere

http://webserver/app/Default.aspx?category=nice&catalog=url&pageid=youHaveThere

我想从asp.net应用程序中调用此函数。我该怎么做?

2 个答案:

答案 0 :(得分:0)

我假设您的服务器上已经安装了该模块,并且只是询问有关定义特定规则的问题。 This是您可以阅读创建规则所需的一切内容。

规则都是通过正则表达式完成的,而非我的强项。但这是一个格式示例:

<rewrite>
  <rules>
    <rule name="Rewrite to article.aspx">
      <match url="^article/([0-9]+)/([_0-9a-z-]+)" />
      <action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" />
    </rule>
  </rules>
</rewrite>

([0-9] +)代表仅数字模式,([_ 0-9a-z - ] +)代表文本和数字。我认为这对你所追求的东西有用:

<rewrite>
  <rules>
    <rule name="Rewrite to Default.aspx">
      <match url="^article/([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-]+)" />
      <action type="Rewrite" url="app/Default.aspx?category={R:1}&catalog={R:2}&pageid={R:3}" />
    </rule>
  </rules>
</rewrite>

答案 1 :(得分:0)

我不认为你会称之为“重写规则”。相反,你只需使用正则表达式替换。也许是这样的:

string nice_url = "http://webserver/nice/url/youHaveThere"
string new_url = Regex.Replace(nice_url, @"/(?<category>\w+)/(?<catalog>\w+)/(?<pageid>\w+)$", "app/Default.aspx?category=${category}&catalog=${catalog}&pageid=${pageid}");