0

我在 IIS 上设置 URL 重写,我需要使用正则表达式匹配以下 URL。

http://sub.mysite.com
sub.mysite.com
sub.mysite.com/
sub.mysite.com/Site1
sub.mysite.com/Site1/admin

但不是:

sub.mysite.com/admin
sub.mysite.com/admin/somethingelse
sub.mysite.com/admin/admin

它自身 ( sub.mysite.com) 的站点不应在表达式中“硬编码”。相反,它应该与类似.*.

我对这个真的很空白。我确实找到了匹配不同 URL 的解决方案,但是一旦我尝试将它们组合起来,它们要么都不匹配,要么全部匹配。

我希望有一个人可以帮助我。

4

2 回答 2

4

对于您的特定情况,假设您匹配域(REQUEST_URI)之后的部分:

(?!/admin).*

(?!...)负前瞻。我不确定 IIS URL 重写引擎是否支持它。如果不是,更好的方法是检查补充方法:

或者正如@kirilloid 所说,只需匹配/admin/?并丢弃(注意斜线)。

顺便提一句。如果您想通过“视觉”反馈快速测试 RegExp,我强烈推荐http://gskinner.com/RegExr/

于 2013-09-02T20:10:04.320 回答
1
([A-Za-z0-9]+.)+.com(?!/admin)/?([A-Za-z0-9]+/?)*

这应该可以解决问题

于 2013-09-02T20:26:45.173 回答