nginx中域名、目录的301重定向配置示例

  

下面我来详细讲解如何在nginx中配置域名和目录的301重定向。

示例一:域名重定向配置

步骤一:配置域名解析

首先,需要在DNS解析中将需要重定向的域名解析到服务器的IP地址上,例如将原始域名example.com解析到服务器IP地址为192.168.1.1的服务器上。

步骤二:配置nginx监听端口

在nginx的配置文件中,将需要进行重定向的域名和对应的端口进行监听,如下所示:

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

该配置文件的意思是,监听80端口,如果有请求的域名为example.com,则进行301重定向到https://www.example.com。

步骤三:配置重定向目的域名

在nginx的配置文件中,将需要进行重定向的目的域名及对应的站点路径进行设置,如下所示:

server {
    listen       443 ssl;
    server_name  www.example.com;
    root         /usr/share/nginx/html;
    index        index.html;
    ssl_certificate      /etc/nginx/cert/www.example.com.crt;
    ssl_certificate_key  /etc/nginx/cert/www.example.com.key;

    location / {
        try_files $uri $uri/ =404;
    }
}

该配置文件的意思是,监听443端口,如果有请求的域名为www.example.com,则返回当前站点根目录下的index.html文件。

步骤四:重启nginx服务

重启nginx服务,使配置文件生效。可以使用以下命令:

sudo systemctl restart nginx

这样就完成了在nginx中配置域名重定向。

示例二:目录重定向配置

步骤一:配置nginx站点

在nginx的配置文件中,将需要进行重定向的站点及对应的端口进行监听,如下所示:

server {
    listen       80;
    server_name  example.com;
    root         /usr/share/nginx/html/example;
    index        index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

该配置文件的意思是,监听80端口,如果有请求的域名为example.com,则返回当前站点根目录下的index.html文件。

步骤二:配置重定向规则

在nginx的配置文件中,将需要进行重定向的目录及对应的重定向目的路径进行设置,如下所示:

server {
    listen       80;
    server_name  example.com;
    root         /usr/share/nginx/html;
    index        index.html;

    location /old {
        return 301 http://example.com/new;
    }

    location /new {
        root /usr/share/nginx/html/new;
        index index.html;
    }

    location / {
        try_files $uri $uri/ =404;
    }
}

该配置文件的意思是,当请求example.com/old路径时,返回301重定向到example.com/new路径,并将站点根目录更改为/usr/share/nginx/html/new,返回当前站点根目录下的index.html文件。

步骤三:重启nginx服务

重启nginx服务,使配置文件生效。可以使用以下命令:

sudo systemctl restart nginx

这样就完成了在nginx中配置目录重定向。

以上就是在nginx中配置域名和目录的301重定向的完整攻略。

相关文章