php实现指定域名
PHP 实现指定域名访问限制
在 PHP 中限制访问域名可以通过检查 $_SERVER['HTTP_HOST'] 或 $_SERVER['SERVER_NAME'] 来实现。以下是几种常见的实现方法:
检查当前访问域名并限制
$allowedDomains = ['example.com', 'www.example.com'];
$currentDomain = $_SERVER['HTTP_HOST'];
if (!in_array($currentDomain, $allowedDomains)) {
header('HTTP/1.1 403 Forbidden');
exit('Access denied');
}
使用 .htaccess 配合 PHP 限制
在 .htaccess 文件中设置环境变量,然后在 PHP 中检查:

SetEnv ALLOWED_DOMAIN example.com
PHP 代码:

if ($_SERVER['HTTP_HOST'] != getenv('ALLOWED_DOMAIN')) {
die('Invalid domain');
}
动态获取允许的域名
如果允许的域名存储在数据库或配置文件中:
$allowedDomains = ['example.com', 'sub.example.com']; // 可从数据库读取
if (!in_array($_SERVER['HTTP_HOST'], $allowedDomains)) {
header('Location: https://example.com/error');
exit;
}
使用正则表达式匹配域名
更灵活的域名匹配方式:
if (!preg_match('/^(www\.)?example\.com$/', $_SERVER['HTTP_HOST'])) {
die('Domain not allowed');
}
注意事项
HTTP_HOST包含端口号(如example.com:8080),需处理这种情况。- 在生产环境中建议结合 Web 服务器(如 Nginx/Apache)的配置进行限制,效率更高。
- 如果使用 HTTPS,确保检查的是正确的域名,避免绕过。






