Как проверить, является ли URL-адрес, доступ к странице исходным URL-адресом, или если это запись CNAME.
Например, у меня есть domain.com
. Пользователи могут установить CNAME, где они свяжут www.otherdomain.com
с нашим www.otherdomain.com
.
С нашей точки зрения на сервере, как я могу определить, является ли URL-адрес, доступ к странице, фактическим ( domain.com
) или CNAME ( www.otherdomain.com
)?
Я думаю, вы должны запросить DNS, чтобы это знать, поскольку эта информация обычно не поступает в заголовки запроса.
Взгляните на функции dns_get_record и checkdnsrr в документации PHP.
Вы можете использовать библиотеку классов PHPDNS, чтобы узнать, какая запись DNS является данным URL.
$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, удаленный пользователь почти наверняка использует псевдоним некоторого вида для доступа к сайту.