我正在使用以下代码删除 nginx 虚拟主机中的尾部斜杠,但我想防止在 url 包含某些单词或 slug(例如 /bar/ 或 /foo/ 等)时发生这种情况。
if (!-d $request_filename) {
rewrite ^/(.+)/$ /$1 permanent;
}
有人能帮助我修改以前的条件以实现我所表达的目标吗?
太感谢了,
答案1
实现此目的的一种方法是使用map
。在http
级别中,定义map
:
map $uri $remove_slash {
~/bar/ 1;
~/foo/ 1;
default 0;
}
并在server
级别中使用映射变量:
if ($remove_slash) {
rewrite ^/(.+)/$ /$1 permanent;
}