Nginx:将 IP 地址重定向到域名

Nginx:将 IP 地址重定向到域名

使用以下 Nginx 配置:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    server_name isitmaintained.com;

    ...
}

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230;

    add_header X-Frame-Options "SAMEORIGIN";

    return 301 $scheme://isitmaintained.com$request_uri;
}

我正在尝试重定向http://178.62.136.230/http://isitmaintained.com/但是当我部署此配置时,我最终得到了其中一个Redirect loop或两个链接。

我究竟做错了什么?

答案1

在第二个区块上尝试这个:

server {
    listen 80;
    server_name 178.62.136.230;

    return 302 $scheme://google.com$request_uri;
}

问题是第二个服务器块listen指令比第一个服务器块更具体,因此它总是被使用。而且由于第二个块是该规范的唯一虚拟主机listen,因此它总是被使用。

注意:301 将添加永久重定向。使用 302 进行测试。

答案2

你已经很接近了。你正在寻找的是重写。

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230 isitmaintained.com;

    rewrite  ^/(.*)$  http://www.isitmaintained.com/$1 permanent;
}
server {
    listen 80;
    server_name www.isitmaintained.com;
    # Serve Stuff Here.
}

相关内容