Назад | Перейти на главную страницу

Переписать URL-адрес, но php должен прочитать старый URL-адрес

На моей платформе у каждого пользователя есть собственный файл конфигурации. Файл назван по субдомену, который они создали.

Пример:

user1.domain.com
user2.domain.com
user3.domain.com

Система считывает URL-адрес через $ _SERVER ['SERVER_NAME'] и захватывает субдомен. Затем он ищет соответствующий файл конфигурации на основе поддомена.

Пример:

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 файл

Вместо того, чтобы создавать правила перезаписи в .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']];

Хотя перезапись суперглобалов не является лучшей практикой, ничто не препятствует этому, и это дает вам действительно простое решение.