在我的平台中,每个用户都有自己的配置文件。该文件以他们创建的子域命名。
例子:
user1.domain.com
user2.domain.com
user3.domain.com
系统通过 $_SERVER['SERVER_NAME'] 读取 URL 并获取子域名。然后根据子域名查找适当的配置文件。
例子:
if the url is user1.domain.com the system looks up user1.config.php.
每个用户都可以选择使用自己的域名。我目前通过指向 A 记录来执行此操作。
例子:
user 1 points theirDomainName.com to my IP address via their A record
我如何使用 htaccess 以便 url 读取theirDomainName.com
但平台后端 (php) 读取user1.domain.com
因此平台知道拉取user1.config
文件
答案1
与其在 中制定重写规则.htaccess
,不如在 PHP 脚本内部进行映射,这样维护起来更简单。
该数组应将域名映射到用户名,这样您就会知道如何进行包含。如果您担心更正现有脚本,您甚至可以在此基础上更新 $_SERVER['SERVER_NAME']。
例如,您可以执行以下操作:'user1.domain.com','domain2.com'=>'user2.domain.com','domain3.com'=>'user3.domain.com'];
if (!array_key_exists($_SERVER['SERVER_NAME'], $clients)) {
header('Location: http://domain.com/invalidclient');
exit;
}
$_SERVER['SERVER_NAME'] = $clients[$_SERVER['SERVER_NAME']];
虽然覆盖超级全局变量并不是最佳实践,但没有什么可以阻止它,它为您提供了一个非常简单的解决方案。