URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 8317
[ Назад ]

Исходное сообщение
"Не работает директива Alias - почему?"

Отправлено xintrea , 18-Ноя-22 14:11 
Настраиваю сейчас gitweb. Сам CGI-скрипт работает, веб-интерфейс рисуется. Однако нет доступа к ресурсам http://our_server/git/static/..., т. е. к картинкам, CSS, JS-скриптам.

Конфиг в данный момент следующий:


...
<IfDefine ENABLE_GITWEB>

  # Turning on mod rewrite
  RewriteEngine on

  # Make the front page an internal rewrite to the gitweb script
  RewriteRule ^/git/$  /cgi-bin/gitweb.cgi [L,PT]

  # Make access for "dumb clients" work
  RewriteRule ^/git/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]

  Alias /git /home/git

  <Directory /home/git>
    Options +FollowSymLinks +ExecCGI
    AddHandler cgi-script .cgi
    Require all granted
    DirectoryIndex /cgi-bin/gitweb.cgi
  </Directory>
</IfDefine>

Я выяснил, что ресурсы лежат в каталоге /usr/share/gitweb/static. Поэтому подумал, что можно проблему решить такой опцией:


Alias /git/static /usr/share/gitweb/static

И с завершающим слешем пробовал:

Alias /git/static/ /usr/share/gitweb/static/


Опцию эту взял из документации git-scm (https://git-scm.com/docs/gitweb), прописываю рядом с Alias /git /home/git.

Но все равно, при запросе ресурсов типа http://our_server/git/static/gitweb.css выдается ошибка 404.

Вопрос: почему не работает данная опция? Вроде все правильно написал. Причем Alias /git /home/git - работает, без нее страница не генерируется. А алиас на static не работает.


Содержание

Сообщения в этом обсуждении
"Не работает директива Alias - почему?"
Отправлено xintrea , 18-Ноя-22 14:18 
Вдогонку: модуль alias_module, естественно, включен.

"Не работает директива Alias - почему?"
Отправлено xintrea , 18-Ноя-22 14:41 
Блин, оказывается опции надо в последовательности от точного пути к общему писать.

Так не работает:


Alias /git /home/git
Alias /git/static /usr/share/gitweb/static

А так работает.


Alias /git/static /usr/share/gitweb/static
Alias /git /home/git


"Не работает директива Alias - почему?"
Отправлено Pahanivo , 18-Ноя-22 15:49 
> Так не работает:

Если вбить в гуглу mod_alias, то первой же строкой выпадает дока, у которой в самом начале:

-------------------------------
For this reason, when two or more of these directives apply to the same sub-path, you must list the most specific path first in order for all the directives to have an effect. For example, the following configuration will work as expected:

Alias "/foo/bar" "/baz"
Alias "/foo" "/gaq"
-------------------------------

Но видимо за столько лет мусье не научился пользоваться ни гуглой ни манами ...