URL 末尾的 nginx 位置零或一个斜杠

nginx location zero or one trailing slash at the end of URL

location ~ ^/random/?$ {
       try_files $uri $uri/ /api/random.php;
    }

我的 nginx 配置文件中有这个规则,我希望能够像 /random/random/

一样调用这个 URL

问题是此规则允许在末尾使用无穷大尾部斜杠,例如 /random///// for ex。也可以。

nginx 在匹配 location 指令时使用规范化的 URI,因此多个连续的 / 已经在您的正则表达式时减少为单个 /已测试。

您可以通过测试 $request_uri 变量来拒绝多个连续的 /,该变量包含原始 URI 和查询字符串(如果有)。例如:

if ($request_uri ~ //) { return 403; }