Azure 应用程序网关自定义 Header 规则
Azure Application Gateway Custom Header Rules
我们有一个 Azure 应用程序网关设置和工作。我们要为名为 X.header 的 header 添加符合以下条件的规则。
- 如果传入请求中根本不存在 X - 则让请求通过
- 如果 X 存在但为空或包含 white-spaces - 则阻止请求
- 如果 X 存在但包含至少 1 个非 space 字符 - 然后让请求通过
我使用了以下模式 .+
(任意字符 0 多次)- 这仅满足要点 1 但不满足要点 2(如果 header 则不会阻止请求为空白或有 spaces) 和 3(如果 header 包含非 space 字符,如 p
,则请求失败)。
我需要使用什么类型的正则表达式来满足所有三个条件? 我原本希望 .+
至少满足要点 1 和 3。
使用
^ *[^ ].*$
解释
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
* ' ' (0 or more times (matching the most
amount possible))
--------------------------------------------------------------------------------
[^ ] any character except: ' '
--------------------------------------------------------------------------------
.* any character except \n (0 or more times
(matching the most amount possible))
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the
string
我们有一个 Azure 应用程序网关设置和工作。我们要为名为 X.header 的 header 添加符合以下条件的规则。
- 如果传入请求中根本不存在 X - 则让请求通过
- 如果 X 存在但为空或包含 white-spaces - 则阻止请求
- 如果 X 存在但包含至少 1 个非 space 字符 - 然后让请求通过
我使用了以下模式 .+
(任意字符 0 多次)- 这仅满足要点 1 但不满足要点 2(如果 header 则不会阻止请求为空白或有 spaces) 和 3(如果 header 包含非 space 字符,如 p
,则请求失败)。
我需要使用什么类型的正则表达式来满足所有三个条件? 我原本希望 .+
至少满足要点 1 和 3。
使用
^ *[^ ].*$
解释
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
* ' ' (0 or more times (matching the most
amount possible))
--------------------------------------------------------------------------------
[^ ] any character except: ' '
--------------------------------------------------------------------------------
.* any character except \n (0 or more times
(matching the most amount possible))
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the
string