Перенаправить глобальное местоположение / статистику в статистику webaliser для нескольких виртуальных хостов - PullRequest
0 голосов
/ 28 октября 2019

Я (пытаюсь) настроить apache mod_rewrite для следующего сценария. У меня настроено несколько vhosts на сервере apache, например

  • siteA.domain.com
  • siteB.domain.com и т. Д.

Каждый vhostимеет DocumentRoot, например:

  • / var / www / vhosts / siteA.domain.com
  • / var / www / vhosts / siteB.domain.com

Я настроил webaliser для захвата файлов запросов_log для каждого vhost и создания страниц статистики в: * /var/www/usage/siteA.domain.com/index.html (... и других страницах)* /var/www/usage/siteB.domain.com/index.html

Теперь я хочу, чтобы пользователь мог просматривать siteA.domain.com/stats и просматривать страницы статистики webaliser для siteA;siteB.domain.com/stats для просмотра страниц статистики webaliser для siteB и т. д.

Конечно, легко установить псевдоним в каждом виртуальном хосте, например,

  • В хосте для сайта A.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/ - это файл, который невозможно найти.

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

...