IIS10 的正则表达式匹配 URL/Domain/Filename
Regex Match URL/Domain/Filename For IIS10
我看过 this link 但它不符合我的要求。
我想为 IIS10 创建一个与某些 critea 匹配的正则表达式,如果它不匹配,则使用 URL 重写来做一些事情,比如重定向到主页。
我对这条规则的尝试:
(https?:\/\/example\.com).*?(\/)?([Dd]?efault\.aspx)?
我希望它能够检查以下 URL:
好URL的:
https://example.com/default.aspx
https://example.com
不好URL的:
http://example.com/default.aspx
http://example.com/directory/somepagename.aspx
http://example.com/
http://example.com
http://example.com/ADirectory/default.aspx
http://www.example.com/default.aspx
http://www.example.com/
http://www.example.com
https://www.example.com/default.aspx
https://www.example.com/
https://www.example.com
因此,任何 URL HTTP 都会被拒绝。任何具有与两个 GOOD URL 之一相匹配的 HTTPS 的 URL 都可以。任何具有子目录的 HTTPS url 都是 BAD URL。域名中包含 WWW 的任何 URL 都应被拒绝(包括 HTTPS)。匹配大小写 = 否(不区分大小写)。
也许几个月后,我会替换 IIS10 规则并在 C# 处理程序中使用它。
非常感谢
如果您不想只匹配 http,请不要将 s?
设置为可选。除了使用可以匹配 /
的 .*?
,您可以使用否定字符 class 匹配除正斜杠 [^/]*
之外的任何字符,不允许子文件夹
如果你不想允许尾部斜杠,你可以将它包含在最后一个可选组中,如果你想匹配整个字符串,你可以使用锚 ^
和 $
^(https://example\.com)[^/]*(/?[Dd]?efault\.aspx)?$
看到一个regex demo
我看过 this link 但它不符合我的要求。
我想为 IIS10 创建一个与某些 critea 匹配的正则表达式,如果它不匹配,则使用 URL 重写来做一些事情,比如重定向到主页。
我对这条规则的尝试:
(https?:\/\/example\.com).*?(\/)?([Dd]?efault\.aspx)?
我希望它能够检查以下 URL:
好URL的:
https://example.com/default.aspx
https://example.com
不好URL的:
http://example.com/default.aspx
http://example.com/directory/somepagename.aspx
http://example.com/
http://example.com
http://example.com/ADirectory/default.aspx
http://www.example.com/default.aspx
http://www.example.com/
http://www.example.com
https://www.example.com/default.aspx
https://www.example.com/
https://www.example.com
因此,任何 URL HTTP 都会被拒绝。任何具有与两个 GOOD URL 之一相匹配的 HTTPS 的 URL 都可以。任何具有子目录的 HTTPS url 都是 BAD URL。域名中包含 WWW 的任何 URL 都应被拒绝(包括 HTTPS)。匹配大小写 = 否(不区分大小写)。
也许几个月后,我会替换 IIS10 规则并在 C# 处理程序中使用它。
非常感谢
如果您不想只匹配 http,请不要将 s?
设置为可选。除了使用可以匹配 /
的 .*?
,您可以使用否定字符 class 匹配除正斜杠 [^/]*
之外的任何字符,不允许子文件夹
如果你不想允许尾部斜杠,你可以将它包含在最后一个可选组中,如果你想匹配整个字符串,你可以使用锚 ^
和 $
^(https://example\.com)[^/]*(/?[Dd]?efault\.aspx)?$
看到一个regex demo