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

Подстановочный знак в DocumentRoot для виртуального хоста

Я использую эту конфигурацию в apache2 для поддомена с подстановочными знаками и хорошо работает:

<VirtualHost *:80>
  DocumentRoot /var/www/
  ServerName sumdomains.example.com
  ServerAlias *.example.com
  RewriteEngine On
  RewriteRule ^/(.*) /%{HTTP_HOST}/$1
</VirtualHost>

это означает, что просьба http://user.example.com/foo.html получит файл / var / www /user.example.com/foo.html.

но я хочу запросить http: //пользователь.example.com / foo.html получить файл из / var / www /пользователь/foo.html.

какой подстановочный знак я должен использовать для этого?

Установить правило перезаписи, захватить субдомен и перенаправить в / sub / requiredFile

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-]+)\.example.com$
RewriteRule ^(.+) /%1/$1 [L,QSA]

Или установите VirtualDocumentRoot с% -1, представляющим поддомен.

<VirtualHost *:80>
  VirtualDocumentRoot /var/www/%-1
  ServerName sumdomains.example.com
  ServerAlias *.example.com
</VirtualHost>