Перенаправить глобальное местоположение / статистику в статистику 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/ - это файл, который не может быть найден.

Любая помощь приветствуется.

0 ответов

Другие вопросы по тегам