OpenResty 是一个基于 Nginx 和 Lua 的高性能 web 平台。要解决 URL 中连续两个斜线(//)的问题,您可以使用 Nginx 的 rewrite 指令。

以下是在 OpenResty/Nginx 配置中解决这一问题的方法:

  1. 打开您的 OpenResty 或 Nginx 配置文件。
  2. 在适当的serverlocation 块中添加以下重写规则:

    rewrite ^/(.*)//+(.*)$ /$1/$2 permanent;

  3. 这条规则的意思是,如果 URL 路径中有两个或多个连续的斜线,它们将被一个斜线替代。此规则会持续执行,直到没有连续的

您可能需要根据您的配置稍作调整,但这个规则应该是一个好的起点。完成上述步骤后,别忘了重新加载或重启 Nginx/OpenResty 以使更改生效。

这种方法会将所有连续的 // 都替换为单个 /。如果你的意图只是处理单独的两个连续的 //,而不处理三个或更多的连续斜线,那么您可能需要调整重写规则。

比如,在1Panel中,启用针对typecho1的伪静态时默认是只有第一行的设置,这里加上上面的连续//的设置即可解决某些时候博客后台生成图片url时出现重复/的问题。(这个问题会导致七牛云的自定义图片样式不起作用,原因不明)

代码如下

    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last;
        rewrite ^/(.*)//+(.*)$ /$1/$2 permanent;
    }
Last modification:September 5, 2023
If you think my article is useful to you, please feel free to appreciate