为什么 example.com 的行为与 .example.com 完全相同?
Why does example.com behave exactly as .example.com?
我不知道为什么 server_name
example.com 也匹配子域(至少在没有规则的情况下),如果有特定的语法:
Nginx documentation声明你可以通过以下方式定义server_name
:
Sets names of a virtual server, for example:
server_name example.com;
Server names can include an asterisk (“*”) replacing the first or last
part of a name:
server_name *.example.com;
Such names are called wildcard names.
The first two of the names mentioned above can be combined in one:
server_name .example.com;
但我对此进行了测试,example.com
的行为与 .example.com
预期的一样,也匹配所有子域。
这不是问题,因为我可以通过为 *.example.com
设置服务器来覆盖子域,但对我来说似乎很奇怪,如果存在 .example.com
的语法以匹配两者其他两个,应该是其他两个不匹配...
这是为什么?
如果您的子域不匹配任何规则,它们将被回调到标记为 default_server
的规则,默认情况下,该规则是文件中的第一个。在这种情况下,example.com
规则。
这是正确问题的答案:
我不知道为什么 server_name
example.com 也匹配子域(至少在没有规则的情况下),如果有特定的语法:
Nginx documentation声明你可以通过以下方式定义server_name
:
Sets names of a virtual server, for example:
server_name example.com;
Server names can include an asterisk (“*”) replacing the first or last part of a name:
server_name *.example.com;
Such names are called wildcard names.
The first two of the names mentioned above can be combined in one:
server_name .example.com;
但我对此进行了测试,example.com
的行为与 .example.com
预期的一样,也匹配所有子域。
这不是问题,因为我可以通过为 *.example.com
设置服务器来覆盖子域,但对我来说似乎很奇怪,如果存在 .example.com
的语法以匹配两者其他两个,应该是其他两个不匹配...
这是为什么?
如果您的子域不匹配任何规则,它们将被回调到标记为 default_server
的规则,默认情况下,该规则是文件中的第一个。在这种情况下,example.com
规则。
这是正确问题的答案: