Хостинг программного обеспечения на моем сервере, который позволяет пользователям указывать свой домен на использование CNAME - PullRequest
6 голосов
/ 25 марта 2010

Я создаю программное обеспечение, которое позволяет пользователям либо иметь собственный настраиваемый поддомен (например, itssubdomain.mydomain.com), либо указать CNAME из своего домена на адрес моего сайта (например, ихsubdomain.theirdomain.com). *

Я связался с хозяином по этому поводу, и первый вариант субдомена - крутой. Они установят для меня скрипт субдомена wilcard ...

CNAME, которое они сказали, я не могу сделать автоматически. Мне придется вручную зайти в свою учетную запись и добавить домен, чтобы он указывал на адрес моего веб-сайта, в противном случае apache не будет сейчас, где искать файлы.

Это обычная практика или есть способ обойти это автоматически?

1 Ответ

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

Проблема в заголовке HTTP. Когда вы запрашиваете веб-страницу, браузер отправляет запрос, который начинается с:

GET /mypage.html HTTP/1.1
Host: www.mysite.com

Элемент Host позволяет одному веб-серверу обслуживать страницы для нескольких доменов. Глядя на Host, сервер знает, что mypage.html должен исходить из своих сохраненных файлов для mysite.com, а не из файлов myothersite.com, находящихся на том же сервере.

Я предполагаю, что ваш сайт находится на общем веб-сервере в вашей хост-компании, и они используют эту функциональность, чтобы различать запросы на ваш сайт и запросы на другие сайты, которые находятся в той же виртуальной коробке. Некоторые из этих виртуальных хостов, такие как HostGator, позволят вам указать другие домены, которые должны быть приняты в этой строке Host, и откуда должны возвращаться возвращаемые документы. Это часто более дорогой сервис, предлагаемый компаниями. Например, в HostGator говорится: «Планы хостинга Baby и Business позволяют размещать неограниченное количество доменов только на одной учетной записи», однако базовый план Hatchling этого не позволяет.

Если у вас есть собственный арендованный компьютер с собственной установкой Apache, вы можете самостоятельно управлять обработкой этой информации заголовка HTTP. Apache поддерживает виртуальные хосты, см. Следующую документацию: http://httpd.apache.org/docs/2.2/vhosts/

В общем, вам нужно каким-то образом сообщить Apache (или любому серверу, который вы используете), что файлы для определенного значения Host соответствуют тем же файлам для вашего домена, поскольку один сервер Apache может предоставлять файлы сотни разных доменов. Если вы не управляете своим собственным сервером Apache, где вы можете настроить виртуальные хосты, как показано в документации, служба хостинга должна будет предоставить какой-то особый способ передачи этой информации в Apache.

...