5

如何检查访问页面的 URL 是原始 URL 还是 CNAME 记录。

例如,我有一个网站domain.com。用户可以在链接www.otherdomain.com到我们网站的地方设置 CNAME domain.com

从我们的服务器的角度来看,我如何检测访问页面的 URL 是实际 URL(domain.com)还是 CNAME (www.otherdomain.com)?

4

3 回答 3

10

我认为您必须查询 DNS 才能知道它,因为此信息通常不会出现在请求标头中。

查看 PHP 文档中的dns_get_recordcheckdnsrr函数。

于 2011-11-22T19:39:42.070 回答
2

您可以使用PHPDNS类库来找出给定 url 的 DNS 记录类型。

$answer->results[x]->typeid //Textual record type ID (A, MX, CNAME etc)
于 2011-11-22T19:38:46.767 回答
2

如果您正在检查 URL,则可以$_SERVER['HTTP_HOST']在 PHP 中使用。这是从 URL 请求的主机(例如http://otherdomain.com/blah.php将使服务器 var be otherdomain.com)。$_SERVER['SERVER_NAME']是 httpd.conf 中配置的服务器名。

如果 HTTP_HOST != SERVER_NAME,远程用户几乎可以肯定使用某种别名来访问该站点。

于 2011-11-22T19:42:35.250 回答