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

打印 上一主题 下一主题

主题 1010|帖子 1010|积分 3030

在 Nginx 中,默认的目录浏览功能显示的日期格式包含英文月份,若想将其显示为数字月份,必要对 Nginx 的 autoindex 模块输出举行自定义处理。
由于 Nginx 自己没有直接配置将日期格式化为数字月份的选项,所以可以借助 Lua 脚本联合 ngx_http_lua_module 模块来实现这个需求。
步骤如下
1. 确认 ngx_http_lua_module 模块已安装 起首要包管 Nginx 已经安装了 ngx_http_lua_module 模块。
你可以通过以下下令查看 Nginx 编译时的配置参数:
  1. nginx -V 2>&1 | grep lua
复制代码
若输出包含 lua 干系信息,说明该模块已安装;
若没有,你必要重新编译 Nginx 并添加 --with-http_lua_module 选项。
使用豆包问:
已经安装的nginx,怎样重新编译 Nginx 并添加 --with-http_lua_module 选项。

2. 创建 Lua 脚本 在合适的目录(例如 /etc/nginx/lua)下创建一个 Lua 脚本,如 format_autoindex.lua,内容如下: 
  1. -- 读取原始的 autoindex 输出
  2. local html = ngx.arg[1]
  3. -- 使用正则表达式替换日期格式
  4. html = string.gsub(html, "(%d+)-(%a+)-(%d+)", function(day, month, year)
  5.     local months = {
  6.         Jan = "01", Feb = "02", Mar = "03", Apr = "04",
  7.         May = "05", Jun = "06", Jul = "07", Aug = "08",
  8.         Sep = "09", Oct = "10", Nov = "11", Dec = "12"
  9.     }
  10.     return string.format("%s-%s-%s", year, months[month], day)
  11. end)
  12. -- 输出处理后的 HTML
  13. ngx.arg[1] = html
复制代码
3. 修改 Nginx 配置文件 在 Nginx 配置文件里添加对 Lua 脚本的调用,示例如下:
  1. server {
  2.     listen 80;
  3.     server_name your_domain_or_ip;
  4.     location /gp/ {
  5.         autoindex on;
  6.         # 在输出之前执行 Lua 脚本
  7.         header_filter_by_lua_file /etc/nginx/lua/format_autoindex.lua;
  8.     }
  9. }
复制代码
要把 your_domain_or_ip 替换为现实的域名大概 IP 地址。
4. 查抄并重新加载 Nginx 配置 实行以下下令查抄配置文件语法是否正确:
  1. nginx -t
复制代码
若语法查抄通过,重新加载 Nginx 配置:
  1. systemctl reload nginx
复制代码




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表