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

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?

Foi útil?

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:

  1. É 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)
  2. 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 é:

  1. adicionar um campo no perfil dos usuários para um nome de domínio

  2. contar os usuários a deixar ponto a entrada DNS host ao seu IP (ou o principal domainname de você)

  3. criar um host virtual que é o primeiro de alle vhosts que você pode ter. (*)

  4. 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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top