Как вы можете обслуживать 2 версии одного и того же сайта с разными именами хостов, используя Apache
Я хочу предложить своим пользователям бета-доступ для тестирования новых функций. Я запускаю свой сайт с использованием фреймворка Symfony.
В настоящее время у меня есть следующая рабочая конфигурация:
mysite.com:
<VirtualHost *:80>
DocumentRoot /var/www/html/mysite/current/web
ServerName mysite.com
ServerAlias www.mysite.com
<Directory "/var/www/html/mysite/current/web">
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
Я попытался предоставить бета-версию своего сайта со следующим конфигом:
<VirtualHost *:80>
DocumentRoot /var/www/html/mysite_beta/current/web
ServerName beta.mysite.com
<Directory /var/www/html/mysite_beta/current/web>
AllowOverride None
Require all granted
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
Это не сработало, и Apache обслуживал только содержимое второй конфигурации, но с 404 ошибками для таких ресурсов, как файлы css и js, которые включены.
Я недостаточно знаком с настройкой Apache, чтобы заставить это работать так, как я намереваюсь.
Как я могу получить 2 разные кодовые базы моего сайта, работающие на одном сервере Apache?
2 ответа
Убедитесь, что DNS разрешается правильно как для mysite.com, так и для beta.mysite.com. Если Apache не получит значение HOST в заголовке, он будет использовать первый загруженный сайт.
Apache загружает сайты в алфавитном порядке.
Конфигурация в порядке, но я не вижу
NameVirtualhost *:80
Директива. Попробуйте поместить его в основной файл конфигурации