如何在nginx位置中允许完全匹配,并为不匹配的位置抛出404

时间:2019-02-24 13:37:59

标签: nginx

我想匹配nginx中的确切位置,如果该位置包含多余的文本或参数,则应显示404页面。例如http://localhost:8080/yes不应显示索引页,而应显示404页。这是我的.conf文件

root /var/www/assets/;
index index.html;

location / {
    default_type text/html;
    try_files $uri $uri/ /index.html =404;
}

location /data {
    default_type text/html;
    try_files $uri $uri/ /data.html =404;
}

location /voice {
     default_type text/html;
     try_files $uri $uri/ /voice.html =404;
}

例如,我只想匹配/data,不匹配/dataaa/datas,如果位置与上述位置不匹配,则显示404页面。

1 个答案:

答案 0 :(得分:0)

如果您想与/data精确匹配,则需要像这样=指定您的位置

location = /data {
    default_type text/html;
    try_files $uri $uri/ /data.html =404;
}

Nginx manual about location

  

[D]定义“ location = /”将加快这些请求的处理速度,因为搜索在第一次比较后立即终止

(重点是我的)