У меня есть регулярное выражение для определения местоположения
ScriptAlias /script /var/www/somescript.bash
Action some-handler /script virtual
<LocationMatch "/(?:\w+:)?\/\/[^\/]+([^?#]+)/">
SetHandler some-handler
</LocationMatch>
Теперь, когда протестируем это регулярное выражение https://regex101.com/r/lO0aV1/1 вы можете видеть, что местоположение совпадает, но somescript.bash никогда не выполняется.
Кстати, mod_actions.
В журнале ошибок ничего не вижу. В журнале доступа я получил 404.
Как я могу проверить, что это регулярное выражение работает? Можно ли это записать?
Создайте CustomLog, например:
CustomLog "/var/log/httpd/mylog.log" "%h %l %u %t \"%r\" %>s %b what:%{INDICATOR_VAR}e"
и используйте SetEnv для установки INDICATOR_VAR:
<LocationMatch ...>
SetEnv INDICATOR_VAR "OK"
</LocationMatch>
Самый простой способ проверить, что LocationMatch работает, - это поместить в него простую директиву mod_headers и выгрузить заголовки ответа на тестовом клиенте. например Header set X-DEBUG foo