Как вы можете обслуживать 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

Директива. Попробуйте поместить его в основной файл конфигурации

Другие вопросы по тегам