Назад | Перейти на главную страницу

Как вы можете обслуживать 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, чтобы все работало так, как я предполагал.

Как я могу запустить две разные кодовые базы моего сайта на одном сервере Apache?

Убедитесь, что DNS правильно разрешает как для mysite.com, так и для beta.mysite.com. Если Apache не получает значение HOST в заголовке, он будет использовать первый загруженный сайт.

Apache загружает сайты в алфавитном порядке.

Конфигурация в порядке, но я не вижу

 NameVirtualhost *:80

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