UseCanonicalName 指令
| 描述: | 配置服务器如何确定自己的名称和端口 |
|---|---|
| 句法: | UseCanonicalName On|Off|DNS |
| 默认: | UseCanonicalName Off |
| 内容: | 服务器配置,虚拟主机,目录 |
| 状态: | 核心 |
| 模组: | 核心 |
在许多情况下,Apache httpd必须构造一个自我引用的 URL,即,引用回同一服务器的URL。对于UseCanonicalName OnApache,httpd将使用ServerName指令中指定的主机名和端口来构造服务器的规范名称。此名称在所有自引用URL中SERVER_NAME以及SERVER_PORTCGI 和中的值中使用。
使用UseCanonicalName OffApache httpd时,将使用客户端提供的主机名和端口(如果提供了主机名和端口),形成自引用URL(否则,它将使用规范名称,如上定义)。这些值与用于实现基于名称的虚拟主机的值相同,并且可用于相同的客户端。CGI变量SERVER_NAME也SERVER_PORT将由客户端提供的值构造。
一个可能有用的示例是Intranet服务器上,在该服务器上,用户使用诸如的短名称连接到计算机www。您会注意到,如果用户键入短名和URL(即目录)(例如http://www/splat,不带斜杠),则Apache httpd会将其重定向到http://www.example.com/splat/。如果启用了身份验证,这将导致用户必须进行两次身份验证(www一次又一次的身份验证www.example.com-有关更多信息,请参阅此主题的FAQ)。但是如果UseCanonicalName设置了Off,那么Apache httpd将重定向到http://www/splat/。
第三个选项,UseCanonicalName DNS旨在与基于大规模IP的虚拟主机一起使用,以支持不提供Host:标头的古老客户端。使用此选项,Apache httpd在客户端连接到的服务器IP地址上进行反向DNS查找,以计算出自引用URL。
警告如果CGI对的值进行假设
SERVER_NAME,则此选项可能会破坏它们。客户端实际上可以自由地提供他们想要的任何值作为主机名。但是,如果CGI仅SERVER_NAME用于构造自引用URL,则应该很好。
参见
UseCanonicalPhysicalPortServerNameListen
