NGINX 托管域的默认重定向

NGINX 托管域的默认重定向

我正在尝试将所有没有服务器指令的托管域重定向到位于公司域服务器指令内的停放页面。

目前,我有以下内容,它只会重定向到主页,因为转发非 TLS 公司域请求也需要相同的指令。

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name   _;

    return       301 https://company.com$request_uri;
}

我需要一个服务器指令,将所有非 company.com 的请求转发到 company.com/parked.php

答案1

您可以使用以下配置:

server {
    listen       80;
    listen       [::]:80;
    server_name  company.com;

    return       301 https://company.com$request_uri;
}

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name   _;

    return 301 https://company.com/parked.php;
}

因此,您可以为域指定一个处理 http -> https 重定向的 vhost ,以及一个重定向到停放页面的默认服务器。这比使用指令company.com更有效率。if

答案2

你可能想要这样的东西:

if ( $host != 'company.com' ) {
   return 301 https://company.com/parked.php
}

注意:如果在 nginx 中被视为邪恶(https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/),但这是少数几种安全的使用方法之一。

相关内容