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; }
location ~ ^/random/?$ {
try_files $uri $uri/ /api/random.php;
}
我的 nginx 配置文件中有这个规则,我希望能够像 /random
或 /random/
问题是此规则允许在末尾使用无穷大尾部斜杠,例如 /random///// for ex。也可以。
nginx
在匹配 location
指令时使用规范化的 URI,因此多个连续的 /
已经在您的正则表达式时减少为单个 /
已测试。
您可以通过测试 $request_uri
变量来拒绝多个连续的 /
,该变量包含原始 URI 和查询字符串(如果有)。例如:
if ($request_uri ~ //) { return 403; }