- Posted in: Admin-tips
[lang_en]
Some times we need to use our existing hosting account to (maybe temporarily) place another web-site in it. But what we can do, if our hosting provider allows only one hosting directory and only aliases for main site (as GoDaddy.com does)? We can use the following Apache+mod_rewrite trick to host unlimited number of domains on one hosting directory.
First of all, we need to point our new domain to hosting server IP. If server’s IP is static, we can do it by simple A-record in our DNS-zone control panel:
new-domain.com IN A IP.ADD.RE.SS
If you don’t know IP address of hosting server or this address is not permanent (for example, because of some load balancing used by hosting provider), you can use simple trick with CNAME-record in your new DNS-zone:
new-domain.com IN CNAME already-hosted-domain.com.
After the first step was finished we have new-domain.com pointed to our hosting provider’s server. Now, we need to add this domain support to hosting server. We can do it by your hosting provider’s “Domain aliases” option or another option with such meaning.
After we have associated our new domain name with existing directory on hosting server (/hosting/dir), everything we need is to do something to force hosting server to use some sub-directory for all requests to new-domain.com (/hosting/dir/new-domain). To do it, we need to put following code into the .htaccess file in /hosting/dir directory:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !^/new-domain/ RewriteCond %{HTTP_HOST} new-domain\.com$ RewriteRule (.*) http://already-hosted-domain.com/new-domain/$1 [L]
That’s all! After we have created this file, all requests to new-domain.com will be pointed to /hosting/dir/new-domain directory.
[/lang_en]
[lang_ru]
Иногда нам бывает нужно использовать существующий хостинг-аккаунт для (возможно, временного) размещения другого сайта на нем. Но что делать, если хостинг-провайдер разрешает создание только одного корневого каталога и привязываение алиасов к каталогу, в котором лежит главный сайт (как это делает, например, компания GoDaddy.com)? Мы можем использовать описанный ниже трюк с Apache+mod_rewrite для размещения неограниченного количества доменов в одном каталоге хостинга.
Для начала, нам нужно, чтобы новый домен указывал на IP-адрес хостингового сервера. Если адрес сервера статичен, мы можем просто сделать A-запись в панели управления нашей DNS-зоной:
new-domain.com IN A IP.ADD.RE.SS
Если Вы не знаете IP-адрес хостингового сервера или этот адрес не постоянен (например, из-за специфичных технологий балансировки нагрузки, используемых Вашим хостинг-провайдером), Вы можете истользовать простой трюк с CNAME-записью в Вашей DNS-зоне:
new-domain.com IN CNAME already-hosted-domain.com.
После завершения первого этапа настройки у нас есть домен new-domain.com, указывающий на используемый хостинг-сервер. Теперь нам необходимо добавить поддержку нашего нового домена к этому серверу. Это можно сделать при помощи опции “Domain aliases” в панели управления хостингом или какой-нибудь другой опции, имеющей такое же значение у используемого хостинг-провайдера.
После того, как мы ассоциировали наше новое доменное имя с существующим каталогом на хостинговом сервере (/hosting/dir), единственное, что нам необходимо сделать – это заставить хостинговый сервер использовать некоторый подкаталог для всех запросов к домену new-domain.com (/hosting/dir/new-domain). Для того, чтобы получить такой эффект, нам нужно создать файл .htaccess в каталоге /hosting/dir и поместить в него следующий код:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !^/new-domain/ RewriteCond %{HTTP_HOST} new-domain\.com$ RewriteRule (.*) http://already-hosted-domain.com/new-domain/$1 [L]
Вот и все! После создания файла все запросы к сайту http://new-domain.com/ будут перенаправляться в каталог /hosting/dir/new-domain.
[/lang_ru]