📜  nginx 重定向到非 www (1)

📅  最后修改于: 2023-12-03 15:17:52.520000             🧑  作者: Mango

Nginx重定向到非www

当我们在搭建网站时,一般我们希望统一加上或者去掉www,来避免搜索引擎对重复内容的惩罚以及方便用户记忆和访问。那么如何使用Nginx将所有的请求重定向到非www域名呢?本篇文章将会给出详细的介绍。

确定域名

首先,我们需要确定自己的域名,比如 www.example.com。接下来,我们将 www.example.com 重定向到 example.com

修改DNS记录

在开始配置前,我们需要先在DNS中对域名进行配置,使其解析到正确的IP地址。具体可参考域名和DNS相关教程。

编辑Nginx配置文件

接下来,我们需要在Nginx的配置文件中添加对应的配置。我们可以在 /etc/nginx/sites-enabled/ 目录下修改默认配置文件,也可以在 /etc/nginx/conf.d/ 目录下新建一个配置文件。

在配置文件中,我们需要添加一个server块,将所有 www.example.com 的请求都重定向到 example.com。示例代码如下:

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

上述的配置中,listen 指定监听的端口,server_name 指定待重定向的域名,return 301 指定了重定向方式为301永久重定向,301是搜索引擎优化的指定重定向方式,能够最大程度地保持搜索权重。

最后,我们需要将Nginx配置重载,重载命令如下:

sudo service nginx reload
测试重定向

完成上述配置后,我们需要测试一下是否真正实现了重定向。我们可以通过浏览器访问 www.example.com,验证是否跳转到了 example.com。另外,也可以通过命令行工具(比如curl)来测试重定向。示例代码如下:

curl -I www.example.com

执行该命令后,我们可以看到输出的HTTP状态码为301,同时也可以看到重定向后的 Location 头部指向了 example.com

至此,本文介绍了如何使用Nginx将所有的请求重定向到非www域名。通过本文介绍的方法,我们可以避免重复内容的问题,也可以提高用户的访问便捷性。