Маскирование домена / указание на каталог веб-приложения? - PullRequest
1 голос
/ 09 августа 2009

Я создал веб-приложение LAMP, которое позволяет пользователям создавать свои собственные страницы профиля, где они могут загружать свое резюме и портфолио. URL для профиля человека будет выглядеть примерно так:

http://jobbank.com/user/johndoe

Джон Доу регистрирует доменное имя http://johndoefreelancer.com, и он хочет, чтобы оно указывало на http://jobbank.com/user/johndoe.. Любой, кто посещает johndoefreelancer.com, не должен знать, что его использует http://jobbank.com/user/johndoe. что URL браузера должен постоянно показывать адреса, такие как:

http://johndoefreelancer.com/aboutme (действительно указывает на jobbank.com/user/johndoe/aboutme) http://johndoefreelancer.com/portfolio (действительно указывает на jobbank.com/user/johndoe/portfolio)

Кроме того, нажатие на любую ссылку [a href = ""] должно держать вас на johndoefreelancer.com вместо того, чтобы отправлять вас на jobbank.com.

У меня вопрос: как лучше всего этого добиться?

Я рассматриваю: 1) Дайте пользователям инструкции о том, как переадресовывать домен с маскировкой

2) Поручить пользователям заполнить поле $ homeUrl в своих данных профиля пользователя, которое сохраняется в базе данных

3) В моем PHP-коде, если $ homeUrl существует, замените все [a href = "$ _ SERVER ['HTTP_HOST']"] на [a href = "$ homeUrl"]

Это правильный подход? Есть ли лучший способ?

Ответы [ 2 ]

1 голос
/ 09 августа 2009

Единственный практический способ, который я мог придумать в данный момент:

  1. добавить поле в профиле пользователя для доменного имени

  2. скажите пользователям, чтобы они указывали запись узла DNS на ваш IP (или ваше основное доменное имя)

  3. создайте виртуальный хост, который является ПЕРВЫМ из всех возможных вариантов. (*)

  4. на этом виртуальном хосте создайте скрипт index.php, который ищет запрошенное имя домена в профиле пользователя и отображает страницу.

Возможно, вам потребуется реализовать переключатель для URL-адресов, которые вы печатаете на странице. например. если вы перешли на страницу специального индекса, используйте / в качестве «базового href», во всех остальных случаях / user / username равно «base href»

*) Если apache получает запрос на имя, которое он не знает (поскольку у него нет ServerName | Псевдоним vhost, он использует первый Vhost как запасной вариант.

1 голос
/ 09 августа 2009

Альтернативным подходом может быть указание пользователям указывать свои домены на ваш IP и настраивать их как виртуальные хосты на основе имен. Преимущества:

  1. Гораздо проще настроить пользователя, чем перейти с маскированием (последнее может быть невозможно даже в зависимости от регистратора)
  2. Вам не нужно иметь дело с перезаписью URL в вашем PHP-коде.

Это было бы проще в настройке, если бы вам не приходилось использовать префикс /user/johndoe для своих URL-адресов (что вам на самом деле не нужно, потому что вы можете выполнить поиск домена в своем коде для определения идентификатора пользователя), но это также возможно с префиксом - просто установка mod_rewrite в этом случае должна быть более активной (вам нужно будет сделать это для каждого домена).

...