如何在 nginx 上设置 410 永久删除

如何在 nginx 上设置 410 永久删除

如何在 nginx 上为特定 URL 设置 410 永久删除,例如

https://www.example.com/product/somepage.html

或者更好的是,我怎样才能针对特定的前缀执行此操作,例如

https://www.example.com/product/

在这里我想要 410 所有例如/product/等的URL /product/page1.html/product/page2.html

这是我当前的配置。

server {
        listen 80;
        listen [::]:80;
        server_name example.com;
        return 301 https://www.example.com$request_uri;
}


server {
        listen 80;
        listen [::]:80;
        root /var/www/example.com/html;
        index portal.php index.php  index.html index.htm;

        server_name www.example.com;

        location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
          expires 1M;
          add_header Cache-Control public;
          add_header Pragma public;
        }

        location ~ ^/\.user\.ini {
                deny all;
        }
        
        #some more config here
}

答案1

用一个return陈述生成所需的状态响应。

Alocation陈述使用^~运算符可能是最好的,因为它不能被其他正则表达式位置覆盖。

例如:

location ^~ /product/ { 
    return 410; 
}

相关内容