我对这一切都很陌生,所以请在解释中作为基础。
我工作的地方只是更改了商店软件,因此我有一系列需要按摩的网址,Google,人等继续使用旧链接。
旧链接看起来像: http://mydoman/usedateb.aspx?User_ID=38482&Category_ID=127
我知道如何改写重写地图 http://mydomain/usedateb.aspx?Category_ID=127 至 http://mydomain/hoopy-new-tour-name.aspx
我知道如何执行重写规则来删除User_ID = xxx&来自网址。
我的问题在于让他们两个人一起工作。我需要取出User_ID(因为它被任意分配)并通过地图发送它以更改为hoopy-new-tour-name。
我已经设置了重写规则来删除列表顶部的User和列表中较低的重写映射规则但我最终在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]+&)(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="{R:1}{R:3}" appendQueryString="false" />
</rule>
删除不需要的参数。
我需要这张地图的原因是Cat 127可能是风暴之旅,但128可能是frood之旅。有一个大约500个需要重新映射的列表但我们必须从传入的URL中获取额外的参数才能使其工作。
所有帮助表示赞赏!如果我完全错了,请告诉我。
答案 0 :(得分: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。尝试一下,如果你想做别的事情,说明它是什么。