如何在 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;
}