мне нужно настроить правильно перенаправление. не надо писать логику на lua, она  работает. вот конфиг nginx с поянениями для луччшего понимания. нужноо настроить правильное  перенаправление так чтоб файлы парсились html и в url не было md5 хеша. а все новые файлы открывшиеся по ссылкам проходили весь путь логики сервиса

location / {
        if ($uri ~* ^/(.+)\.md$) {
            set $md_arg $1;
        return 301 /docs/repo/$md_arg;
        }
        default_type text/html;
        content_by_lua_file "$app_root/app.lua";
    }

в app.lua 
следующие
template.render("view.html", {
    title = "Testing lua-resty-template",
    header = "SC Overview",
    services = {{
        name = "srv-app",
        desc = "Продакшн веб приложения",
        url = "/docs"

    location /docs {
        default_type text/plain;
        access_by_lua_file "$app_root/authorization.lua";
    }

в блоке authorization.lua вызывается форма для авторизиции через на основе введенного логина и пароля создается папка. логика простая берется логин и пароль и хешируется в md5 формат. 

    location ~ ^/docs/([a-fA-F0-9]+)$ {
        internal;
        set $md5_user $1;
        rewrite ^/docs/repo break;
        content_by_lua_block {
            local md5_user = ngx.var.md5_user
            ngx.req.set_header("User-Hex", ngx.var.md5_user);
            ngx.exec("/docs/repo/README.md");
        }
    }

в этот блок перенаправляют в зависимости от хеша и перенапраавляют дальше. это сделано для того что бы у пользователей были разделены процеессы и они обращались к только к своим папкам. важно чтоб этот хеш в md5 формате не показывался в url, ибо если он показывается то по этой ссылке любой может посмотреть файл. я смог настроить верно только через header
local md5_user = ngx.var.md5_user
ngx.req.set_header("User-Hex", ngx.var.md5_user);
ngx.exec("/docs/repo/README.md");
а так же в перенаправлении указывается дефотный файл для открытия README.md


    location ~ ^/docs/repo/(.+\.md$)  {
        internal;
        default_type text/plain;
        content_by_lua_file "$app_root/docs.lua";
    }
тут следующая логика.благодаря имени файлу и хешу в хедере отрабатывает баш скрит который открывает папку с аналогичным хешем и запрашиваает README.md. А потом парсится в html
Сейчас проблема в следующем что в дефотном файле README.md есть ссылки на другие md файлы
[file1](./file1.md) - типа таких ии эти фаайлы в том же месте с ними все ок. 
так вот этот файл не отображается при нажатии на ссылку. 
сначало он отображался в виде url /file1.md. 
я настроил этот блок 
if ($uri ~* ^/(.+)\.md$) {
            set $md_arg $1;
        return 301 /docs/repo/$md_arg;
сейчас отображается в виде /docs/file1.md
вот лог ошибок :
2024/05/27 08:51:09 [notice] 201#201: *1470 "^/(.+)\.md$" does not match "/", client: 5.255.231.14, server: srv-status.sc.center, request: "GET / HTTP/1.1", host: "srv-status.sc.center"
2024/05/27 08:54:42 [notice] 201#201: *1472 "^/(.+)\.md$" does not match "/", client: 5.255.231.64, server: srv-status.sc.center, request: "GET / HTTP/1.1", host: "srv-status.sc.center"
2024/05/27 08:58:27 [notice] 201#201: *1473 "^/(.+)\.md$" does not match "/", client: 95.108.213.99, server: srv-status.sc.center, request: "GET / HTTP/1.1", host: "srv-status.sc.center"
2024/05/27 09:02:28 [notice] 201#201: *1475 "^/docs/repo" does not match "/docs/67e49957d9ba6f4a3f34f96fb78ffaa7", client: 109.195.53.244, server: srv-status.sc.center, request: "GET /docs/file1.md HTTP/1.1", host: "srv-status.sc.center", referrer: "https://srv-status.sc.center/docs/repo"
2024/05/27 09:02:28 [error] 201#201: *1475 [lua] docs.lua:18: STDOUT: README.md, client: 109.195.53.244, server: srv-status.sc.center, request: "GET /docs/file1.md HTTP/1.1", host: "srv-status.sc.center", referrer: "https://srv-status.sc.center/docs/repo"