如何检查访问页面的 URL 是原始 URL 还是 CNAME 记录。
例如,我有一个网站domain.com
。用户可以在链接www.otherdomain.com
到我们网站的地方设置 CNAME domain.com
。
从我们的服务器的角度来看,我如何检测访问页面的 URL 是实际 URL(domain.com
)还是 CNAME (www.otherdomain.com
)?
我认为您必须查询 DNS 才能知道它,因为此信息通常不会出现在请求标头中。
查看 PHP 文档中的dns_get_record和checkdnsrr函数。
您可以使用PHPDNS类库来找出给定 url 的 DNS 记录类型。
$answer->results[x]->typeid //Textual record type ID (A, MX, CNAME etc)
如果您正在检查 URL,则可以$_SERVER['HTTP_HOST']
在 PHP 中使用。这是从 URL 请求的主机(例如http://otherdomain.com/blah.php将使服务器 var be otherdomain.com
)。$_SERVER['SERVER_NAME']
是 httpd.conf 中配置的服务器名。
如果 HTTP_HOST != SERVER_NAME,远程用户几乎可以肯定使用某种别名来访问该站点。