配置 nginx 为除主页之外的所有页面返回 503 错误代码

Posted

技术标签:

【中文标题】配置 nginx 为除主页之外的所有页面返回 503 错误代码【英文标题】:configure nginx to return 503 error code for all page except home page 【发布时间】:2021-03-09 23:36:13 【问题描述】:

我的一个客户暂停该网站几个月,因此我计划为主页设置一个登录页面,并向所有其他链接返回 503 状态代码。 (我读到返回 503 状态码不会损害 seo)

这怎么可能通过 nginx 配置实现?

我有以下 nginx 配置,但它为所有请求抛出 503。

server 
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    location / 
    return 503;
   
 

是否可以将 nginx 配置配置为在文档根目录 /usr/share/nginx/html 上提供 index.html 页面,并在所有其他链接上重新运行 503?那么 nginx conf 会是什么?

【问题讨论】:

【参考方案1】:

使用精确匹配位置:

location = / 
    root /usr/share/nginx/html;
    index index.html;

# all the other requests will be served with the following location
location / 
    return 503;

【讨论】:

我尝试了相同的配置,但主域也显示 503 状态代码。我正在使用 nginx:latest docker image。 尝试添加这个:location = /index.html root /usr/share/nginx/html; 这个配置应该可以正常工作。其他原因应该是问题的原因(缓存的请求、不正确的服务器块、未重新启动的 nginx 等)。

以上是关于配置 nginx 为除主页之外的所有页面返回 503 错误代码的主要内容,如果未能解决你的问题,请参考以下文章

XAMPP 为除 phpmyadmin 之外的所有内容提供 Forbidden 403

为除一个/几个表之外的所有表授予 [几乎] 所有 mySQL 权限

为除管理员之外的所有用户禁用Wordpress管理栏

为除 main 之外的所有分支触发 GitHub Actions,其中唯一的工作流定义文件是

需要为除 word1 或 word2 之外的任何单词找到正则表达式

scss 在scss中使用非选择器定位除主页之外的所有页面