2012-04-22 35 views
1

我已阅读iis.net上的文章Creating Rewrite Rules for the URL Rewrite Module,我想从我的网站中删除一些细分。IIS URL重写规则 - 如何删除某些段?

例如,从:

/article/archive/2289/01/articleid/191/reftab/36/word1 word2 word3 

到:

/article/articleid/191/word1-word2-word3 

我已经改变了我的web.config文件的,但我不能够解决我的问题:

<rewrite> 
    <rules> 
    <rule name="Remove segments"> 
     <match url="^article/archive/2289/01/([0-9]+)/([_0-9a-z-]+)" /> 
     <action type="Rewrite" url="article/articleid/{R:1}/{R:2}" /> 
    </rule> 
    </rules> 
</rewrite> 

回答

0

它看起来像你试图做倒退。 <match>元素表示友好的URL--用户在浏览器中输入的URL,链接中包含的URL以及IIS接收的URL。

<action>元素代表不友好的 URL - 如果您不使用重写模块,则必须使用该URL。

<match url="^article/articleid/([0-9]+)/([_0-9a-z-]+)" /> 
<action type="Rewrite" url="/article/archive/2289/01/articleid/{R:1}/reftab/36/{R:2}" /> 

这里的问题是,你可能不想硬编码2289/01,对不对?您需要将其合并到您的友好URL中,或者拿出一些中间处理程序来处理没有这些数字的请求。