Наверняка эксперты знают как на одной машине завести несколько виртуальных хостов, что скорее всего не очень очевидно начинающим или обычным разработчикам.
Подскажите как по шагам решить данную проблему. Не стоит посылать на известные поисковики!
Мне бы хотелось получить информацию: 1. Какие файлы редактировать? 2. Где они лежат? 3. В каком порядке? 4. Какие есть нюансы? 5. Какие папки и где создавать\удалять?
Данная тема уже была, но на мой взгляд она плохо раскрыта!
Сайт хостится на VPS masterhost. Многосайтовость настраивал конфигурированием только httpd.conf Nginx не конфигурировал, т.к. по заверениям техподдержки masterhost - "У Вас сервер с тарифом "Доступный:1С-Битрикс", с системой CentOS и установленной виртуальной машиной Битрикс. Nginx в Вашем случае не используется."
Проблема в том, что файл robots.txt для всех сайтов видится в папке /home/bitrix/www/, а не в папке определенного сайта. Т.е. набрав www.site1.ru/robots.txt или www.site2.ru/robots.txt в любом случае открывается www/robots.txt.
Что ни так?
Рекомендации техподдержки masterhost и битрикс`а совершенно разные: masterhost - "Нет, это стандартное поведение. Поисковые системы запрашивают файл robots.txt только из корня домена, а при многосайтовости контент сайтов лежит не в корне. В данном случае поможет только подстановка файлов через mod_rewrite или генерация скриптом."
битрикс - "Данная ситуация говорит о том, что $_SERVER['DOCUMENT_ROOT'] текущего сайта равен $_SERVER['DOCUMENT_ROOT'] другого сайта (сайта по умолчанию - в терминологии многосайтовости нашего Продукта) в конфигурации хостов сервера. Это нормально, если у Вас многосайтовость реализована на папках. Т.е. когда у всех сайтов один $_SERVER['DOCUMENT_ROOT'], но Продукт подключает определённый сайт в зависимости от обращения к определённой папке, относительно $_SERVER['DOCUMENT_ROOT'].
Многосайтовость на доменах(в терминологии многосайтовости нашего Продукта) предполагает наличие уникального $_SERVER['DOCUMENT_ROOT'] для каждого сайта. Поэтому указанной Вами проблемы быть не может."
httpd.conf
Код
Listen 8888
<VirtualHost *:8888>
ServerName site1.ru
ServerAlias *.site1.ru
ServerAdmin admin@site1.ru
DocumentRoot /home/bitrix/www/s1/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/bitrix/www/s1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
DirectoryIndex index.php index.html index.htm
Order allow,deny
allow from all
</Directory>
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
ErrorLog logs/site1.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog logs/site1.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
<IfModule mod_rewrite.c>
#Nginx should have "proxy_set_header HTTPS YES;" in location
RewriteEngine On
RewriteCond %{HTTP:HTTPS} =YES
RewriteRule .* - [E=HTTPS:on,L]
</IfModule>
</VirtualHost>
<VirtualHost *:8888>
ServerName site2.ru
ServerAlias *.site2.ru
ServerAdmin admin@site2.ru
DocumentRoot /home/bitrix/www/s2/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/bitrix/www/s2/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
DirectoryIndex index.php index.html index.htm
Order allow,deny
allow from all
</Directory>
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
ErrorLog logs/site2.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog logs/site2.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
<IfModule mod_rewrite.c>
#Nginx should have "proxy_set_header HTTPS YES;" in location
RewriteEngine On
RewriteCond %{HTTP:HTTPS} =YES
RewriteRule .* - [E=HTTPS:on,L]
</IfModule>
</VirtualHost>
соответственно сайты расположены в папках /home/bitrix/www/s1/ и /home/bitrix/www/s2/
многосайтовость настроена на доменах: · Название: site1 · Доменное имя: site1.com · Папка сайта: / · Название сайта: "Название компании" · URL сервера: www.site1.com · Путь к корневой папке веб-сервера для этого сайта: /home/bitrix/www/s1/
· Название: site2 · Доменное имя: site2.com · Папка сайта: / · Название сайта: "Название компании" · URL сервера: www.site2.com · Путь к корневой папке веб-сервера для этого сайта: /home/bitrix/www/s2/
Т.е. $_SERVER['DOCUMENT_ROOT'] для каждого сайта в httpd.conf настроен на свою папку.