翼度科技»论坛 云主机 服务器技术 查看内容

Nginx 只允许 www 域名访问并禁止裸域名访问的实现步骤

5

主题

5

帖子

15

积分

新手上路

Rank: 1

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

在网站管理中,很多时候我们希望用户只能通过带有
  1. www
复制代码
的域名访问,而对于裸域名(即没有
  1. www
复制代码
前缀的域名)则禁止访问或进行重定向。这可以通过修改 Nginx(或 Tengine)的服务器配置来实现。本文将介绍如何配置 Nginx,以实现用户只能通过
  1. www
复制代码
访问网站,而禁止或重定向裸域名。

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

首先,我们在 Nginx 中为
  1. www
复制代码
域名创建一个虚拟主机,确保所有通过
  1. www.zhanmeng.net
复制代码
的请求都指向网站的正确目录。具体配置如下:
  1. server {
  2.     listen 80;
  3.     server_name www.test.net;
  4.     root /var/www/test;
  5.     index index.html index.php;
  6.     location / {
  7.         try_files $uri $uri/ =404;
  8.     }
  9. }
复制代码
这个配置告诉 Nginx,所有
  1. www.zhanmeng.net
复制代码
的请求将指向网站根目录
  1. /var/www/zhanmeng
复制代码
,并尝试加载
  1. index.html
复制代码
  1. index.php
复制代码
文件。

步骤 2:禁止裸域名访问

为了禁止用户通过裸域名
  1. zhanmeng.net
复制代码
访问,我们可以创建一个独立的虚拟主机,并使用 Nginx 的
  1. return 444
复制代码
指令。这会让 Nginx 立即关闭连接,不返回任何内容,从而禁止访问。
  1. server {
  2.     listen 80;
  3.     server_name test.net;
  4.     return 444;
  5. }
复制代码
这种方式非常直接,用户尝试访问
  1. zhanmeng.net
复制代码
时将看到连接被拒绝的提示。

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

如果你希望访问
  1. zhanmeng.net
复制代码
的用户自动重定向到
  1. www.zhanmeng.net
复制代码
,可以修改配置使用
  1. 301
复制代码
重定向。这样,所有对裸域名的请求都会被引导到带
  1. www
复制代码
的域名。
  1. server {
  2.     listen 80;
  3.     server_name test.net;
  4.     return 301 http://www.test.net$request_uri;
  5. }
复制代码
这种方式不仅可以保留用户请求的路径(例如
  1. zhanmeng.net/about
复制代码
会重定向到
  1. www.zhanmeng.net/about
复制代码
),还对 SEO 更加友好。

步骤 4:重启 Nginx 应用配置

完成配置后,记得重启 Nginx 服务器,使更改生效:
  1. sudo systemctl restart nginx
复制代码
总结

通过修改 Nginx 配置,我们可以轻松实现用户只能通过
  1. www
复制代码
域名访问,而直接访问裸域名时禁止访问或自动重定向到
  1. www
复制代码
。这不仅提升了网站的品牌统一性,还能改善用户体验和 SEO 效果。
到此这篇关于如何通过 Nginx 只允许 www 域名访问并禁止裸域名访问的文章就介绍到这了,更多相关 Nginx www 域名访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/server/329030koy.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具