可以使用rewrite指令结合正则表达式来实现这个需求。以下是一个示例配置:

server {
    listen 80;
    server_name example.com;
    root /path/to/root;

    location / {
        rewrite ^(.+)/$ $1/index.html last;
        try_files $uri $uri/ =404;
    }
}

这个配置会将以斜杠结尾的URI重写成原来的URI后拼接上index.html。例如,/path-a/path-b/会被重写成/path-a/path-b/index.html

如果原始请求带有查询参数,则可以使用$query_string变量将查询参数拼接到index.html后面。例如,/path-a/path-b/?param1=value1&param2=value2会被重写成/path-a/path-b/index.html?param1=value1&param2=value2

如果原始请求没有查询参数,则结尾就是index.html。例如,/path-a/path-b/会被重写成/path-a/path-b/index.html

请注意,这个配置中使用了try_files指令,它用于尝试在指定的文件或目录中查找匹配的文件。如果找不到匹配的文件,将返回404错误

nginx 将uri结尾是斜杠的 请求重写成 原来的uri后拼接 indexhtml 如果原来的请求有带query参数则将参数拼接到indexhtml后如果没有带参数请求则结尾就是 indexhtml。以 path-apath-b 举例。不要用if

原文地址: https://www.cveoy.top/t/topic/hMKP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录