OpenResty 是一个基于 Nginx 和 Lua 的高性能 web 平台。要解决 URL 中连续两个斜线(//
)的问题,您可以使用 Nginx 的 rewrite
指令。
以下是在 OpenResty/Nginx 配置中解决这一问题的方法:
- 打开您的 OpenResty 或 Nginx 配置文件。
在适当的
server
或location
块中添加以下重写规则:rewrite ^/(.*)//+(.*)$ /$1/$2 permanent;
- 这条规则的意思是,如果 URL 路径中有两个或多个连续的斜线,它们将被一个斜线替代。此规则会持续执行,直到没有连续的
您可能需要根据您的配置稍作调整,但这个规则应该是一个好的起点。完成上述步骤后,别忘了重新加载或重启 Nginx/OpenResty 以使更改生效。
这种方法会将所有连续的 //
都替换为单个 /
。如果你的意图只是处理单独的两个连续的 //
,而不处理三个或更多的连续斜线,那么您可能需要调整重写规则。
比如,在1Panel中,启用针对typecho1的伪静态时默认是只有第一行的设置,这里加上上面的连续//的设置即可解决某些时候博客后台生成图片url时出现重复/的问题。(这个问题会导致七牛云的自定义图片样式不起作用,原因不明)
代码如下
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
rewrite ^/(.*)//+(.*)$ /$1/$2 permanent;
}