nginx 将uri结尾是斜杠的 请求重写成 原来的uri后拼接 indexhtml 如果原来的请求有带query参数则将参数拼接到indexhtml后如果没有带参数请求则结尾就是 indexhtml。以 path-apath-b 举例
要实现这个需求,可以使用nginx的rewrite指令和if语句来处理。
首先,在nginx配置文件中找到对应的server块,然后添加以下代码:
location ~ /(.*)/$ {
if ($args = "") {
rewrite ^/(.*)/$ /$1/index.html last;
}
rewrite ^/(.*)/$ /$1/index.html?$args last;
}
上述代码中,location ~ /(.*)/$ 表示匹配以斜杠结尾的URI。然后使用if语句判断是否有query参数。
如果没有query参数,则使用 rewrite ^/(.*)/$ /$1/index.html last; 将URI重写为原来的URI后拼接index.html。
如果有query参数,则使用 rewrite ^/(.*)/$ /$1/index.html?$args last; 将URI重写为原来的URI后拼接index.html,并将query参数拼接到URI后面。
这样,当访问 /path-a/path/-b/ 时,会被重写为 /path-a/path/-b/index.html。如果原来的请求带有query参数,如 /path-a/path/-b/?key=value,则重写为 /path-a/path/-b/index.html?key=value
原文地址: https://www.cveoy.top/t/topic/hMKL 著作权归作者所有。请勿转载和采集!