在web.config文件中设置redirect

我正试图用一些更具描述性的东西来redirect一些不友好的url。 这些url以.aspx?cid=3916结尾,每个类别名称页面的最后几位数字不同。 我想它redirect到Category/CategoryName/3916 。 我在web.config文件中试过这个:

 <location path="Category.aspx?cid=3916"> <system.webServer> <httpRedirect enabled="true" destination="http://www.site.com/Category/CategoryName/3916" httpResponseStatus="Permanent" /> </system.webServer> 

但是因为它不是以扩展而结束,所以不起作用。 有没有简单的方法来使这个工作? 我正在使用IIS 7.5。

  1. 在旧页面所在的目录打开web.config
  2. 然后添加旧位置path和新目标的代码,如下所示:

     <configuration> <location path="services.htm"> <system.webServer> <httpRedirect enabled="true" destination="http://domain.com/services" httpResponseStatus="Permanent" /> </system.webServer> </location> <location path="products.htm"> <system.webServer> <httpRedirect enabled="true" destination="http://domain.com/products" httpResponseStatus="Permanent" /> </system.webServer> </location> </configuration> 

您可以根据需要添加尽可能多的位置path。

你可能想看看URL Rewrite这样的东西,把URL改写成更友好的URL,而不是使用简单的httpRedirect 。 然后你可以制定一个这样的规则:

 <system.webServer> <rewrite> <rules> <rule name="Rewrite to Category"> <match url="^Category/([_0-9a-z-]+)/([_0-9a-z-]+)" /> <action type="Rewrite" url="category.aspx?cid={R:2}" /> </rule> </rules> </rewrite> </system.webServer>