Я использую эту конфигурацию в 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>