Перенаправить глобальное местоположение / статистику в статистику Webaliser для нескольких виртуальных хостов
Я (пытаюсь) настроить apache mod_rewrite для следующего сценария. У меня есть несколько хостов, настроенных на сервере Apache, например
- siteA.domain.com
- siteB.domain.com и т. д.
У каждого виртуального хоста есть DocumentRoot, например:
- /var/www/vhosts/siteA.domain.com
- /var/www/vhosts/siteB.domain.com
Я настроил webaliser для захвата файлов request_log для каждого виртуального хоста и создания страниц статистики в: * /var/www/usage/siteA.domain.com/index.html (... и другие страницы) * /var/www/usage/siteB.domain.com/index.html
Теперь я хочу, чтобы пользователь мог перейти на siteA.domain.com/stats, чтобы увидеть страницы статистики веб-сайта для siteA; siteB.domain.com/stats, чтобы увидеть страницы статистики веб-сайта для siteB и т. д.
Конечно, легко установить псевдоним для каждого виртуального хоста, например
- В vhost для siteA.domain.com я просто добавляю:
Alias /stats /var/www/usage/siteA.domain.com
- В vhost для siteB.domain.com я просто добавляю:
Alias /stats /var/www/usage/siteB.domain.com
Однако вышеперечисленное требует настройки в каждом виртуальном хосте. Я бы предпочел записать конфигурацию webaliser в файл webaliser.conf и сохранить его.
Чтобы решить эту проблему, я пытаюсь написать для этого правила mod_rewrite, и я пишу их в webaliser.conf, а не в контексте каждого отдельного виртуального хоста. По сути, если запрошенный URL-адрес xxx.domain.com/stats[/page], обслуживаемой страницей является /var/www/usage/xxx.domain.com[/page]. Предполагается, что это внутреннее перенаправление, поэтому браузеру не нужно знать, что страница находится не в том месте.
На данный момент у меня есть:
Alias /stats /var/www/usage
#<Location /usage>
DirectoryIndex index.html
LogLevel trace3
Options FollowSymLinks
RewriteEngine on
RewriteRule /var/www/usage(.*) https://%{HTTP_HOST}/usage/%{HTTP_HOST}$1 [L,END]
#</Location>
Но приведенное выше дает мне цикл перенаправления на данный момент. В предыдущей версии вышеизложенного (которую я, честно говоря, не могу вспомнить) я продолжал получать страницы Не найдены.
Я также пробовалRewriteRule /var/www/usage(/[^/]*)? /var/www/usage/%{HTTP_HOST}$1 [L]
Но это приводит к тому, что не найдено.
Я также пробовал различные варианты Location /usage
, Directory /var/www/usage
и нет контекста, но я не могу заставить его работать.
Другая потенциальная проблема заключается в том, что если index.html
не записан в URL-адресе, документ /var/www/usage/xxx.domain.com/ - это файл, который не может быть найден.
Любая помощь приветствуется.