Domínio mascarando / apontando para um diretório de uma aplicação web?
-
12-09-2019 - |
Pergunta
Eu construí uma aplicação web LAMP que os usuários deixou-nos criar a sua página de perfil próprio, onde podem fazer upload de seu currículo e portfólio. A URL para o perfil de uma pessoa será algo como
http://jobbank.com/user/johndoe
John Doe registra o nome de domínio http://johndoefreelancer.com e ele quer isso para apontar para http://jobbank.com/user/johndoe . Quem visitas johndoefreelancer.com não devem estar cientes de que ele é impulsionado por http://jobbank.com/user/johndoe . Isto significa que a URL do navegador deve mostrar persistentemente endereços, tais como:
http://johndoefreelancer.com/aboutme (realmente aponta para jobbank.com/user/johndoe/ sobre mim) http://johndoefreelancer.com/portfolio (realmente aponta para jobbank.com/user/johndoe/portfolio)
Além disso, clicando em qualquer link [a href = ""] deve mantê-lo no johndoefreelancer.com em vez de enviá-lo para jobbank.com.
A minha pergunta é, qual é a melhor maneira de conseguir isso?
Eu estou considerando: 1) dar instruções aos usuários sobre como domínio para frente com fita ??p>
2) Instrua os usuários a Fillout o campo $ homeUrl em suas informações de perfil do usuário, que é salvo no banco de dados
3) No meu código PHP, se $ homeUrl existe, substituir toda [a href = "$ _ SERVER [ 'HTTP_HOST']"] com [a href = "$ homeUrl"]
Esta é a abordagem correta? Existe uma maneira melhor?
Solução
Uma abordagem alternativa seria a de dizer a seus usuários para apontar seus domínios para o seu IP e configurá-los como hosts virtuais baseados em nome. Os benefícios são:
- É muito mais fácil para o usuário a configurar, em seguida, avançar com fita (este último não pode mesmo ser possível, dependendo registrar)
- Você não tem que lidar com a reescrita de URL em seu código PHP.
Este seria mais fácil de configurar se você não tem que usar /user/johndoe
prefixo para URLs (que você realmente não precisa, porque você pode fazer uma pesquisa de domínio em seu código para determinar ID de usuário), mas é possível com o prefixo, bem como -. é só que a configuração mod_rewrite teria que ser mais envolvido nesse caso (você precisa fazê-lo por domínio)
Outras dicas
A única maneira prática que eu poderia pensar no momento é:
-
adicionar um campo no perfil dos usuários para um nome de domínio
-
contar os usuários a deixar ponto a entrada DNS host ao seu IP (ou o principal domainname de você)
-
criar um host virtual que é o primeiro de alle vhosts que você pode ter. (*)
-
Neste host virtual criar um script index.php que olha para cima o nome do domínio solicitado no perfil do usuário e exibir a página.
Você pode precisar implementar um interruptor para as urls que pretende imprimir a página. por exemplo. se você veio sobre o uso índice página especial / como "href base", em todos os outros casos / user / nome de usuário é "href base"
*) Se apache recebe um pedido de um nome que não sei (porque a sua não ServerName |. Alias ??de um vhost, ele usa o primeiro VHost como fallback