我想使用urlrewriter.net模块将url-rewrite实现为webapplication。
这是我现在的情景(数字是虚构的): Browse.aspx?cid = 9& countryid = 85(cid代表类别ID)
现在我想要这样的东西 类别名称/ countryname.html
所以我认为这可能会奏效,但事实并非如此。我第一次使用这个我必须遗漏一些东西。
<rewrite url="~/(.+)/(.+).html" to="~/Browse.aspx?cid=$1&countryid=$2" />
也许我需要在$ 1和$ 2上使用标题而不是id,但是我想要查询的东西会更难?它意味着很多应用程序中的重建
有人可以帮助我为此而团结一致吗?
亲切的问候并感谢您的阅读, 标记
答案 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&countryid=$2" />
希望有所帮助。
答案 2 :(得分:0)
可能,请求无法访问urlrewriter.net模块,因为IIS将其视为对某些文件的请求,而不是ASP.NET。 您可能会发现以下文章有用:http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx
答案 3 :(得分:0)
猜猜你很久以前就已经解决或放弃了这个问题,但对于那些遇到类似问题的人来说,解决办法就是创建自定义转换。
使用正常情况下的正则表达式提取友好文本值,然后将该文本传递给在数据库中查找值并返回ID代码的转换。
我在以下文章中详细介绍了这一点: