2013-05-13 114 views
0

这是我在这里的第一篇文章,我必须承认我对正则表达式的了解很少。正则表达式URL重写

我们最近升级我们的内部网,从SharePoint 2003年至2010年。在这个过程中,我们打破了单一网站到多个站点集合里面添加/sites到的URL不同站点

例如

http_://intranet/global > http_://intranet/sites/global 
http_://intranet/workplaces > http_://intranet/sites/workpaces 

我试图用正则表达式玩弄重新写静态URL重写包括/sites

Here is my attempt

您应该看到最后两个记录不被WR-正确写入。任何人都可以帮助我创建正确的规则吗?

+0

你应该包括这个问题中的正则表达式了。这样,如果链接停止工作,人们仍然能够看到它。 – Ren 2013-05-13 08:47:12

回答

0

正则表达式
您可以使用此:

/^(http://[^/]+)?/(?!(?:sites|SitePages)/)(.* )$ /毫克

以此替代

\ 1 /位点/ \ 2

DEMO
http://regex101.com/r/zH6dZ5

成绩

 
    http://intranet/global     > http://intranet/sites/global 
    /sites/global       > /sites/global 
    /page/file.ext       > /sites/page/file.ext 
    /sites/other       > /sites/other 
    /page.ext        > /sites/page.ext 
    /intranet/global      > /sites/intranet/global 
    http_://intranet/SitePages/default.aspx > http_://intranet/SitePages/default.aspx 
+0

嗨亚历克斯,谢谢非常多的回应。我刚刚完成了一些测试,并且您的建议看起来很棒。我有一个最后的问题,虽然... 我们的着陆页网址是:http_://intranet/SitePages/default.aspx 似乎这是重写到http_:// intranet/sites/SitePages/default .aspx失败 - 你知道一个去掉这个URL吗? – user2376875 2013-05-13 14:19:11

+0

我已经使用新的正则表达式和演示版更新了我的文章,包括您的着陆页案例。 HTH – Stephan 2013-05-13 14:26:56

+0

嗨,再次感谢...哇,这是一个快速回复。 刚刚发现问题的表达式: http://regex101.com/r/qQ2mB2 - 第一行是重写错误的方式。 – user2376875 2013-05-13 14:40:15