php实现指定域名
实现指定域名访问的方法
在PHP中实现指定域名访问可以通过多种方式完成,以下是几种常见的方法:
检查$_SERVER['HTTP_HOST']
通过检查$_SERVER['HTTP_HOST']变量可以获取当前访问的域名,然后进行判断:

$allowed_domains = ['example.com', 'www.example.com'];
if (!in_array($_SERVER['HTTP_HOST'], $allowed_domains)) {
header('HTTP/1.0 403 Forbidden');
exit('Access denied');
}
使用.htaccess重定向
在Apache服务器上可以使用.htaccess文件实现域名重定向:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
Nginx服务器配置
对于Nginx服务器,可以在配置文件中添加以下内容:

server {
listen 80;
server_name example.com www.example.com;
if ($host !~* ^(example.com|www.example.com)$) {
return 403;
}
# 其他配置...
}
PHP框架中的中间件
如果在Laravel等框架中使用,可以创建中间件:
namespace App\Http\Middleware;
use Closure;
class CheckDomain
{
public function handle($request, Closure $next)
{
$allowed = ['example.com', 'www.example.com'];
if (!in_array($request->getHost(), $allowed)) {
abort(403);
}
return $next($request);
}
}
动态获取允许的域名
如果需要从数据库或其他存储中动态获取允许的域名:
$allowed_domains = get_allowed_domains_from_database(); // 自定义函数
if (!in_array($_SERVER['HTTP_HOST'], $allowed_domains)) {
header('Location: https://example.com', true, 301);
exit;
}
以上方法可以根据具体需求选择使用,确保只有指定的域名能够访问网站或特定功能。






