Nginx 目录浏览功能显示的日期格式设置为数字

在 Nginx 中,默认的目录浏览功能显示的日期格式包含英文月份,若想将其显示为数字月份,需要对 Nginx 的 autoindex 模块输出进行自定义处理。

由于 Nginx 本身没有直接配置将日期格式化为数字月份的选项,所以可以借助 Lua 脚本结合 ngx_http_lua_module 模块来实现这个需求。

步骤如下

  1. 确认 ngx_http_lua_module 模块已安装 首先要保证 Nginx 已经安装了 ngx_http_lua_module 模块。

你可以通过以下命令查看 Nginx 编译时的配置参数:

Lua 复制代码
nginx -V 2>&1 | grep lua

若输出包含 lua 相关信息,说明该模块已安装;

若没有,你需要重新编译 Nginx 并添加 --with-http_lua_module 选项。

使用豆包问:

已经安装的nginx,如何重新编译 Nginx 并添加 --with-http_lua_module 选项。

  1. 创建 Lua 脚本 在合适的目录(例如 /etc/nginx/lua)下创建一个 Lua 脚本,如 format_autoindex.lua,内容如下:
Lua 复制代码
-- 读取原始的 autoindex 输出
local html = ngx.arg[1]
-- 使用正则表达式替换日期格式
html = string.gsub(html, "(%d+)-(%a+)-(%d+)", function(day, month, year)
    local months = {
        Jan = "01", Feb = "02", Mar = "03", Apr = "04",
        May = "05", Jun = "06", Jul = "07", Aug = "08",
        Sep = "09", Oct = "10", Nov = "11", Dec = "12"
    }
    return string.format("%s-%s-%s", year, months[month], day)
end)
-- 输出处理后的 HTML
ngx.arg[1] = html
  1. 修改 Nginx 配置文件 在 Nginx 配置文件里添加对 Lua 脚本的调用,示例如下:
Lua 复制代码
server {
    listen 80;
    server_name your_domain_or_ip;

    location /gp/ {
        autoindex on;
        # 在输出之前执行 Lua 脚本
        header_filter_by_lua_file /etc/nginx/lua/format_autoindex.lua;
    }
}

要把 your_domain_or_ip 替换为实际的域名或者 IP 地址。

  1. 检查并重新加载 Nginx 配置 执行以下命令检查配置文件语法是否正确:
Lua 复制代码
nginx -t

若语法检查通过,重新加载 Nginx 配置:

Lua 复制代码
systemctl reload nginx
相关推荐
上海蓝色星球6 小时前
迈向智慧电网新纪元:上海蓝色星球数字孪生变电主子站系统
运维·数据库
logic_58 小时前
静态路由配置
运维·服务器·网络
zhuzewennamoamtf9 小时前
Linux内核platform抽象、数据结构、内核匹配机制
linux·运维·数据结构
门思科技9 小时前
企业级 LoRaWAN 网关远程运维方案对比:VPN 与 NPS FRP 的技术与安全差异分析
运维·网络·安全
云和数据.ChenGuang9 小时前
Deepseek 持续迭代的模型
运维·运维技术·数据库运维工程师·运维教程
物联网软硬件开发-轨物科技9 小时前
【轨物方案】聚焦锯床设备智能化升级,打造工业互联网新范式
运维·科技·物联网
suzhou_speeder10 小时前
企业数字化网络稳定运行与智能化管理解决方案
运维·服务器·网络·交换机·poe·poe交换机
RisunJan10 小时前
Linux命令-grpck命令(验证和修复组配置文件(`/etc/group` 和 `/etc/gshadow`)完整性的工具)
linux·运维·服务器
那你能帮帮我吗10 小时前
nginx路径相关配置汇总
nginx
Evan芙11 小时前
nginx日志管理及日志格式定制
运维·nginx