重写 URL 但让 php 读取旧 URL

重写 URL 但让 php 读取旧 URL

在我的平台中,每个用户都有自己的配置文件。该文件以他们创建的子域命名。

例子:

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']];

虽然覆盖超级全局变量并不是最佳实践,但没有什么可以阻止它,它为您提供了一个非常简单的解决方案。

相关内容