如何使用REGEX转换此网址?

时间:2013-06-29 17:11:30

标签: c# regex url-rewriting dotnetnuke

我有一个使用DotNetNuke构建的动态网络应用程序,它使用以下网址格式:

/SeoDummy.aspx?template={VAR1}&keywords={VAR2}

我的用户友好网址格式如下:

http://domain.com/.{VAR1}/{VAR2}

我对REGEX非常糟糕,需要以某种方式检测何时请求用户友好的URL并使用动态Web应用程序URL重写它。我尝试了以下内容,但它没有在网站上捕获它,它只是404'ing:

.*/^([^/]+)/([^/]+)/?$

我相信你知道正则表达式会让我的尝试变得愚蠢,但正则表达式是我的氪星石!

感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:2)

由于您使用的是某个自定义网址,我认为正则表达式比使用URI

更好

在你的正则表达式中,你错放了^ ..正则表达式应该是

^https?://domain[.]com/[.]([^/]+)/([^/]+)/?$

答案 1 :(得分:1)

我没有对此进行测试,但请试一试并告诉我它是如何工作的:

domain[.]com/\.([^/]+)/([^/]+)/?$

看起来除了第一克拉之外,你大部分都是正确的,标志着弦的开头......这是不可能的,因为你在它前面指定了.*!你错过了{VAR1}前面的时期(除非这是一个错字?)。

我也不会在.*开头,因为那样你就可以抓住VAR1 = domain.comVAR2 = something that is actually VAR1

如果你想对你的氪石免疫,那么这个网站非常适合查找东西: http://www.regular-expressions.info/reference.html