hkucuk

Создание виртуального хоста для подкаталога

22 октября 2018 г. • ☕️ 2 мин чтение • 🏷 компьютер, программное обеспечение

Переведено автором: DeutschEnglishItalianoРусский


Виртуальный хост используется, когда мы хотим разместить несколько сайтов на сервере. Например, предположим, что у нас есть 3 домена и 3 разных проекта (папки) на сервере.

  1. example.com ---> /var/www/example
  2. example2.com ---> /var/www/example2
  3. example3.com ---> /var/www/example3

Чтобы эти домены запускали проекты в папках, обозначенных стрелками, нам нужно определить виртуальные хосты. Для этого будет работать описание, такое как следующее.

<VirtualHost *:80>
    DocumentRoot "/var/www/example"
    ServerName example.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/example2"
    ServerName example2.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/example3"
    ServerName example3.com
</VirtualHost>

Приведенные выше определения позволяют нам запускать разные проекты для разных доменов. Но как заставить виртуальную подсеть запускать разные проекты в разных подкаталогах в пределах одного домена?

Для этого нам просто нужно сделать новое дополнение к приведенному выше определению. Например, предположим, что у нас есть один домен, и у нас есть 3 разных проекта.

  1. example.com ---> /var/www/example
  2. example.com/alt1 ---> /var/www/example2
  3. example.com/alt2 ---> /var/www/example3

Чтобы позволить этим доменам и подкаталогам запускать проекты, обозначенные стрелками, достаточно организовать наши определения виртуальных хостов следующим образом.

<VirtualHost *:80>
    DocumentRoot "/var/www/example"
    ServerName example.com

    Alias /alt1 "/var/www/example2"
    Alias /alt2 "/var/www/example3"
</VirtualHost>

Kaynaklar

  1. https://httpd.apache.org/docs/2.4/tr/vhosts/index.html
  2. https://httpd.apache.org/docs/2.4/tr/vhosts/examples.html
  3. https://serverfault.com/questions/497541/virtual-host-on-a-sub-directory
  4. https://stackoverflow.com/questions/19055372/redirect-to-a-subfolder-in-apache-virtual-host-file
  5. https://httpd.apache.org/docs/2.4/tr/vhosts/name-based.html