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

git (1 )поставляется с дополнительными файлами в git/contrib/completion/в исходном коде. Сценарий для вашей оболочки обрабатывает завершения.

2
02.05.2020, 20:01
2 ответа

Вы можете включить веб-каталоги для -пользователей с помощью mod _userdir , который сопоставляет

http://example.com/~username/index.html

в соответствующий файл

/home/username/public_html/index.html

в каталоге пользователя по умолчанию.

Чтобы избавиться от тильды, вы можете использовать механизм перезаписи Apache и запретить доступ ко всем URL-адресам, начинающимся с ~, и использовать Aliasдля сопоставления отдельных путей с их пользовательскими каталогами.

Добавьте это в конфигурацию VirtualHost:

RewriteEngine On
# forbid URLs starting with /~
RewriteRule ^/~  -  [F]

# map individual paths to user dirs
Alias /bart    /home/bart/public_html
Alias /homer   /home/homer/public_html
Alias /lisa    /home/lisa/public_html
Alias /maggie  /home/maggie/public_html
#...

Если вам не нужно обслуживать какие-либо файлы из вашего DocumentRoot, вы можете использовать один AliasMatchвместо 150 Aliases:

# map all paths to user dirs
AliasMatch ^/([^/]+)(/.*)?$  /home/$1/public_html$2

Вам необходимо включить mod_userdirи mod_rewriteна вашем сервере, в Debian это можно сделать с помощью a2enmodи перезагрузки.

sudo a2enmod userdir rewrite
sudo service apache2 restart
2
28.04.2021, 23:16

Это невозможно сделать даже с виртуальными хостами, потому что вам потребуются разные имена хостов (или порты ), чтобы отличать их друг от друга.

Это всего лишь один хост с подкаталогами для разных пользователей. Таким образом, вам, возможно, придется (или, по крайней мере, )установить разные права доступа к файлам для каждого из этих подкаталогов.

0
28.04.2021, 23:16

Теги

Похожие вопросы