限制域名访问在PHP中可以通过以下几种方法实现:

1. 使用`$_SERVER['HTTP_HOST']`获取当前访问的域名,然后进行判断:
php
$allowed_domains = array('example.com', 'subdomain.example.com');
$current_domain = $_SERVER['HTTP_HOST'];
if (!in_array($current_domain, $allowed_domains)) {
// 如果当前域名不在允许列表中,则阻止访问
http_response_code(403);
echo "Access denied.";
exit;
}
2. 使用`.htaccess`文件进行域名限制:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(example\.com|subdomain\.example\.com)$ [NC]
RewriteRule ^(.*)$ - [F]
这将阻止除了 `example.com` 和 `subdomain.example.com` 以外的所有域名访问。
3. 结合nginx配置实现域名限制:
nginx
server {
listen 80;
server_name ~^(example\.com|subdomain\.example\.com)$;
# 在这里添加你的其他配置
}
server {
listen 80;
return 403;
}
这样会将除了 `example.com` 和 `subdomain.example.com` 以外的所有域名访问返回403 Forbidden。
4. 使用PHP的`parse_url()`函数获取域名并进行判断:
php
$allowed_domains = array('example.com', 'subdomain.example.com');
$current_url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_HOST);
if (!in_array($current_url, $allowed_domains)) {
// 如果当前域名不在允许列表中,则阻止访问
http_response_code(403);
echo "Access denied.";
exit;
}
以上几种方法都可以有效地限制访问特定域名,选择哪种方法取决于你的具体需求和服务器环境。

查看详情

查看详情