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

Могу ли я иметь два (или более) виртуальных хоста Apache, разделенных подкаталогами?

Я думаю, что это простой вопрос, но позвольте мне объяснить лучше. У меня следующая среда разработки:

Все работает нормально, кроме конфигурации VirtualHost. Я хочу развернуть два приложения: Drupal и Wordpress. У каждого приложения есть свой каталог, например:

На сайте по умолчанию конфигурация VirtualHost указывает на / var / www как корень документа. я бы хотел отключить эту конфигурацию сайта по умолчанию и я хочу создать два VirtualHosts, один для Drupal, а другой для Wordpress.

Однако это среда разработки, и здесь нет домена. Я искал много сайтов и нашел много руководств, все они объясняют, как это сделать с доменами, но не с подкаталогами.

После настройки URL-адрес для доступа к моим приложениям будет:

 - http://example.com/wordpress;
 - http://example.com/drupal;

Я уже пробую с этим VirtualHost:

<VirtualHost *:80>
        ServerName example.com
        ServerAdmin web@myserver.com
        DocumentRoot /l/disk0/site/public_html

        <Directory />
                AllowOverride None
        </Directory>

        Alias /site /l/disk0/site/public_html
        <Directory /l/disk0/site/public_html>
                Options MultiViews Indexes Includes FollowSymLinks ExecCGI
                AllowOverride All
                Require all granted
                allow from all
        </Directory>

        RewriteEngine On
        LogLevel warn
        ErrorLog "/l/disk0/site/logs/apache/site/error.log"
        CustomLog "/l/disk0/site/logs/apache/site/access.log" combined
        SSLProxyEngine on
</VirtualHost>

Не сработало.

VirtualHost используется, когда вы хотите иметь отдельное доменное имя для каждого сайта. Когда apache выбирает, какой виртуальный хост использовать, он смотрит на часть доменного имени URL-адреса. Поэтому, когда эта часть такая же, это означает, что вы не можете разделить ее с помощью VirtualHosts.

У вас есть два варианта:

  • Используйте отдельные имена хостов, например drupal.example.com и wordpress.example.com вместо того example.com/drupal и example.com/wordpress

  • Используйте другой способ разделения двух сайтов.

В первом случае вы бы сохранили VirtualHost конфиги, но вы бы изменили ServerName в каждом.

В последнем случае вы удалите VirtualHost конфигурации и вместо этого сделайте что-то вроде

    Alias /drupal /l/disk0/drupal/public_html
    <Directory /l/disk0/drupal/public_html>
            Options MultiViews Indexes Includes FollowSymLinks ExecCGI
            AllowOverride All
            Require all granted
            allow from all
    </Directory>

    Alias /wordpress /l/disk0/wordpress/public_html
    <Directory /l/disk0/wordpress/public_html>
            Options MultiViews Indexes Includes FollowSymLinks ExecCGI
            AllowOverride All
            Require all granted
            allow from all
    </Directory>