0


如何通过 Nginx 只允许 www 域名访问并禁止裸域名访问

个人名片
在这里插入图片描述
🎓作者简介:java领域优质创作者
🌐个人主页:码农阿豪
📞工作室:新空间代码工作室(提供各种软件服务)
💌个人邮箱:[2435024119@qq.com]
📱个人微信:15279484656
🌐个人导航网站www.forff.top
💡座右铭:总有人要赢。为什么不能是我呢?

  • 专栏导航:

码农阿豪系列专栏导航
面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️
Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻
Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡
全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀

目录

如何通过 Nginx 只允许 www 域名访问并禁止裸域名访问

在网站管理中,很多时候我们希望用户只能通过带有

www

的域名访问,而对于裸域名(即没有

www

前缀的域名)则禁止访问或进行重定向。这可以通过修改 Nginx(或 Tengine)的服务器配置来实现。本文将介绍如何配置 Nginx,以实现用户只能通过

www

访问网站,而禁止或重定向裸域名。

步骤 1:配置 Nginx 处理 www 域名

首先,我们在 Nginx 中为

www

域名创建一个虚拟主机,确保所有通过

www.zhanmeng.net

的请求都指向网站的正确目录。具体配置如下:

server {
    listen 80;
    server_name www.test.net;
    root /var/www/test;
    index index.html index.php;

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

这个配置告诉 Nginx,所有

www.zhanmeng.net

的请求将指向网站根目录

/var/www/zhanmeng

,并尝试加载

index.html

index.php

文件。

步骤 2:禁止裸域名访问

为了禁止用户通过裸域名

zhanmeng.net

访问,我们可以创建一个独立的虚拟主机,并使用 Nginx 的

return 444

指令。这会让 Nginx 立即关闭连接,不返回任何内容,从而禁止访问。

server {
    listen 80;
    server_name test.net;
    return 444;
}

这种方式非常直接,用户尝试访问

zhanmeng.net

时将看到连接被拒绝的提示。

步骤 3:重定向裸域名到 www 域名(可选)

如果你希望访问

zhanmeng.net

的用户自动重定向到

www.zhanmeng.net

,可以修改配置使用

301

重定向。这样,所有对裸域名的请求都会被引导到带

www

的域名。

server {
    listen 80;
    server_name test.net;
    return 301 http://www.test.net$request_uri;
}

这种方式不仅可以保留用户请求的路径(例如

zhanmeng.net/about

会重定向到

www.zhanmeng.net/about

),还对 SEO 更加友好。

步骤 4:重启 Nginx 应用配置

完成配置后,记得重启 Nginx 服务器,使更改生效:

sudo systemctl restart nginx

总结

通过修改 Nginx 配置,我们可以轻松实现用户只能通过

www

域名访问,而直接访问裸域名时禁止访问或自动重定向到

www

。这不仅提升了网站的品牌统一性,还能改善用户体验和 SEO 效果。

标签: nginx 运维

本文转载自: https://blog.csdn.net/weixin_44976692/article/details/142897965
版权归原作者 码农阿豪@新空间代码工作室 所有, 如有侵权,请联系我们删除。

“如何通过 Nginx 只允许 www 域名访问并禁止裸域名访问”的评论:

还没有评论