Как включить пользовательские домены в PHP - PullRequest
4 голосов
/ 30 января 2012

У меня есть система, где пользователи могут вводить свой купленный домен в свой профиль, поэтому при доступе к своему домену он должен заменить свой пользовательский домен, например,

http://domain.com/custom-name на http://purchaseddomain.com.

Таким образом, когда они получают доступ к своему домену покупки, он должен перевести их в свой профиль , включая , их навигационные ссылки, такие как ссылки на их страницах, будут заменены их купленным доменом, например, просмотр их записей будетбыть:

http://domain.com/custom-name/records до http://purchaseddomain.com/records.

Tumblr включает эту функцию, однако я понятия не имею, как все это работает:

enter image description here

Это именно то, как мне нравится иметь такую ​​функцию, я искал на SO, но, похоже, это не помогло.

Теперь это проблема, я не уверен, как ямогу без проблем проверять, подтверждать и объединять приобретенный домен на моем сервере с помощью PHP - для этого я использую Codeigniter.

Есть ли надежный, стабильный плагин / библиотека или подробное руководство, которое может иметь возможностьвключить cusдомены, скрывающие внутренний домен?

Мой сервер работает под управлением Ubuntu 11.10 на nginx 1.0.6.

Шаблонирование подойдет для меня, что я могу сделать - все, что я могунужна справка о том, как безопасно принять и объединить свой домен с моим сервером.


РЕДАКТИРОВАТЬ: только что посмотрел в nginx VirtualHostExample , это выглядитв целом хорошо, но как я могу динамически добавлять / удалять эти записи домена, пока в домене есть запись A, указывающая на мой сервер?

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Вы не будете объединять их домен с вашим сервером.

Фактически, когда они зарегистрируют свои домены, они будут указывать на ваш сервер.

В конфигурации вашего сервера,вам придется динамически создавать правила, которые неявно перенаправляют страницу на ту, которую они создали на вашем сервере.

Таким образом, пользователи увидят http://purchaseddomain.com/on-uri, но вы обслуживаете страницу http://domain.com/custom-name/one-uri

IE: это как если бы вы добавили .htaccess - даже если вы не используете apache, это просто для объяснения того, какой должна быть «система»:

RewriteCond %{HTTP_HOST} purchaseddomain\.com$ [NC]
RewriteRule (.*) /custom-name/$1
0 голосов
/ 30 января 2012

Вот что у меня работает:

server {
    server_name *.mydomain.com
    root        /var/www/$host;

    ...
}

Затем вам нужно создать каталоги, такие как: /var/www/user1.mydomain.com/, /var/www/user2.mydomain.com/, ...

Я не мог понять, как оставить «.mydomain.com» вне имени каталога. Если у кого-то есть идеи, пожалуйста, дайте мне знать:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...