2011-07-08 27 views
0

我对所有这些都很新颖,所以请在您的解释中尽量说明问题。使用地图重写规则并剥离某些参数

我工作的地方只是改变了商店软件,所以我有一系列需要按摩的URL,因为谷歌,人们等都继续使用旧的链接。

旧的链接如下所示: http://mydoman/usedateb.aspx?User_ID=38482&Category_ID=127

我知道该怎么做了重写地图改变 http://mydomain/usedateb.aspx?Category_ID=127http://mydomain/hoopy-new-tour-name.aspx

我知道该怎么做了重写规则删除USER_ID =来自Url的xxx &。

我的问题是让他们俩一起工作。我需要取出User_ID(因为它是任意分配的),并通过地图发送以更改为hoopy-new-tour-name。

我已经设置了重写规则在列表的顶部,并重写映射规则列表中的下删除用户,但我最终在http://mydomain/usedateb.aspx?User_ID=38482&Category_ID=127

如果有帮助,我的web.config有一个像线

<add key="UseDateB.aspx?Category_ID=127" value="/success.htm" /> 

在地图和

<rule name="Remove extra parameters - UserID"> 
     <match url="(.*)User_ID=([0-9]+&amp;)(.*)" /> 
     <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
     <action type="Rewrite" url="{R:1}{R:3}" appendQueryString="false" /> 
</rule> 

剥离不需要的参数。

我需要的地图的原因是,猫127可能是笨蛋之旅,但128可能是frood之旅。有大约500个需要重新映射的列表,但我们必须从传入的URL中获取额外的参数才能使用。

所有帮助表示感谢!如果我完全搞错了,请让我知道。

+0

您是否需要基于Category_ID将'http://mydoman/usedateb.aspx?User_ID = 38482&Category_ID = 127'重写为'http:// mydomain/hoopy-new-tour-name.aspx'?还是我错了? – ub1k

回答

2

看看这个:

  <rules> 
      <clear /> 
      <rule name="RedirectToCategory" stopProcessing="true"> 
       <match url="UseDateB.aspx" /> 
       <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
        <add input="{QUERY_STRING}" pattern="Category_ID=127" /> 
       </conditions> 
       <action type="Redirect" url="http://mydomain/hoopy-new-tour-name.aspx" /> 
      </rule> 
      <rule name="RemoveUserID" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
        <add input="{QUERY_STRING}" pattern="(.*)(User_ID=[0-9]*)(.*)" /> 
       </conditions> 
       <action type="Redirect" url="{R:0}?{C:1}{C:3}" appendQueryString="false" /> 
      </rule> 
     </rules> 

的第一条规则重定向根据类别和第二删除USER_ID。尝试一下,如果你想做别的事情,说明它是什么。

+0

完美!这让我顺利完成我的项目。谢谢! – Deverill