Создание виртуального хоста для подкаталога
22 октября 2018 г. • ☕️ 2 мин чтение • 🏷 компьютер, программное обеспечение
Виртуальный хост используется, когда мы хотим разместить несколько сайтов на сервере. Например, предположим, что у нас есть 3 домена и 3 разных проекта (папки) на сервере.
- example.com ---> /var/www/example
- example2.com ---> /var/www/example2
- 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 разных проекта.
- example.com ---> /var/www/example
- example.com/alt1 ---> /var/www/example2
- 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
- https://httpd.apache.org/docs/2.4/tr/vhosts/index.html
- https://httpd.apache.org/docs/2.4/tr/vhosts/examples.html
- https://serverfault.com/questions/497541/virtual-host-on-a-sub-directory
- https://stackoverflow.com/questions/19055372/redirect-to-a-subfolder-in-apache-virtual-host-file
- https://httpd.apache.org/docs/2.4/tr/vhosts/name-based.html