2010-10-21 129 views
1

我们使用URLRewriter(http://urlrewriter.net),并想重写这样的疑问:ASP.Net URL重写

domain.com/find/red-boots

到这样的: domain.com/search.aspx?k=red+boots

的示例代码进入web.config中是这样的(我有点不熟悉这个语法)

<if url="/tags/(.+)" rewrite="/tagcloud.aspx?tag=$1" />

如何在web.config中对此行进行编码以重写我们需要的方式?另外,如果您对如何理解重写器语法有什么好的建议,那也会很棒。

+0

我觉得你已经错过了链接... – 2010-10-21 00:31:11

+0

你是否需要支持红红蓝红的靴子,使它变得非常棘手,正则表达式 – 2010-10-21 00:33:29

+0

是的,它可以是任意数量的单词用连字符分隔......我也使上面的代码可读。 – alchemical 2010-10-21 00:35:10

回答

1

您所问的“重写器语法”称为正则表达式。有很多很棒的工具,只要搜索谷歌的“正则表达式帮助”。

但是,如果您希望使用一个具有更多历史背后的语法,那么您可以获得更详细的帮助。请查看Managed Fusion Url Rewriter,它使用Apache mod_rewrite语法,这个标准已经比我能发现的更多年了。这里是你将如何完成你的问题的mod_rewrite语法:

RewriteRule ^/find/(.*)  /search.aspx?k=$1  [NC,L] 

RewriteRule后的第一个部分就是试图获得对浏览器请求的URL匹配的输入。第二部分是转变,这是针对匹配规则而发生的。转换将其转化为您的应用程序可以理解的内容。括号中的最后一部分是控制标记,在这种情况下,我告诉RewriteRule不要担心NC指示的字符的情况,并且如果匹配,应该将其视为由L指示的最后处理的规则

+0

伟大的建议!我会试试这个。 – alchemical 2010-10-21 18:32:28

+0

我下载了它,阅读自述文件,引用它,编辑了web.config,但无法让它做任何事情......任何建议?也找不到这方面的任何文件... – alchemical 2010-10-22 08:59:35

+0

这不是真的这个正确的支持论坛。请在网站上发布问题,我将能够为您提供更多帮助。 – 2010-10-22 11:40:15