urlrewriter.net / c#/我只是不明白

时间:2009-12-05 02:38:23

标签: c# asp.net urlrewriter.net

我想使用urlrewriter.net模块将url-rewrite实现为webapplication。

这是我现在的情景(数字是虚构的): Browse.aspx?cid = 9& countryid = 85(cid代表类别ID)

现在我想要这样的东西 类别名称/ countryname.html

所以我认为这可能会奏效,但事实并非如此。我第一次使用这个我必须遗漏一些东西。

<rewrite url="~/(.+)/(.+).html" to="~/Browse.aspx?cid=$1&amp;countryid=$2" />

也许我需要在$ 1和$ 2上使用标题而不是id,但是我想要查询的东西会更难?它意味着很多应用程序中的重建

有人可以帮助我为此而团结一致吗?

亲切的问候并感谢您的阅读, 标记

4 个答案:

答案 0 :(得分:1)

看起来您的示例会将~/9/85.html重写为Browse.aspx?cid=9&countryid=85

我怀疑你正在寻找更友好的东西。

要解决此问题,请考虑如何在网页中生成* .html网址。您可以在那里嵌入类别和国家/地区名称,然后在进行URL重写时忽略它们。

答案 1 :(得分:0)

您将必须使用您现在正在执行此操作的方式在页面上查找ID。意思/mycategory/us.html将变成browse.aspx?cid = mycategory&amp; countryid = us

有两种解决方案。

1)传递国家和类别NAMES并在您的数据库中查看browse.aspx

2)将id添加到url。像http://www.mysite.com/1/2/mycategory/us.html这样的东西。 web.config设置为:

<rewrite url="~/(\d+)/(\d+)/(.+)/(.+).html" to="~/Browse.aspx?cid=$1&amp;countryid=$2" />

希望有所帮助。

答案 2 :(得分:0)

可能,请求无法访问urlrewriter.net模块,因为IIS将其视为对某些文件的请求,而不是ASP.NET。 您可能会发现以下文章有用:http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx

答案 3 :(得分:0)

猜猜你很久以前就已经解决或放弃了这个问题,但对于那些遇到类似问题的人来说,解决办法就是创建自定义转换。

使用正常情况下的正则表达式提取友好文本值,然后将该文本传递给在数据库中查找值并返回ID代码的转换。

我在以下文章中详细介绍了这一点: