Reescreva o URL mas leia o URL antigo

1

Na minha plataforma, cada usuário tem seu próprio arquivo de configuração. O arquivo é nomeado pelo subdomínio que eles criaram.

Exemplo:

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

O sistema lê a URL via $ _SERVER ['SERVER_NAME'] e pega o subdomínio. Em seguida, ele procura o arquivo de configuração apropriado com base no subdomínio.

Exemplo:

if the url is user1.domain.com the system looks up user1.config.php.

Cada usuário tem a opção de usar o próprio domínio. Atualmente estou fazendo isso apontando o registro A.

Exemplo:

user 1 points theirDomainName.com to my IP address via their A record

como eu posso usar o htaccess para que a url leia theirDomainName.com , mas o backend da plataforma (php) lê user1.domain.com , portanto, a plataforma sabe puxar o arquivo user1.config

    
por Jason 17.06.2016 / 19:30

1 resposta

0

Em vez de criar regras de reescrita em .htaccess , seria muito mais simples manter o mapeamento dentro do seu script PHP.

Esse array deve mapear o nome do domínio para o nome de usuário para que você saiba como fazer o seu include. Se você tem medo de corrigir o script existente além disso, pode até atualizar o $ _SERVER ['SERVER_NAME'] com base nele.

Você poderia, por exemplo, fazer:     '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']];

Embora não esteja nas práticas recomendadas para substituir super-globals, nada o impede e oferece uma solução realmente simples.

    
por 17.06.2016 / 23:33