使用nginx进行裸域名的跳转

裸域名也就是在域名注册商处申请得到的顶级域名,比如本站的域名meiweier.com。www、blog这些前缀都是子域名,也叫二级域名。普 通用户访问网站的通常习惯是在浏览器的地址栏输入www.***.***,其实访问的是一个二级域名。对于域名解析来说,顶级域名也是可以被直接访问的, 设定好解析后在web server上配置即可。但通常我们并不这样做,特别是在中国,大部分普通用户认为访问网站是必须要输入www的。没办法,用户的习惯就是这样,我门必须迎合之。
那当用户访问裸域名的时候怎么办呢?如果允许用户直接访问裸域名,可能会带来一个潜在问题,这个问题针对的是有用户系统的网站。通常,网站的用户系统依赖的是浏览器的cookies,而cookies是区分域的,顶级域名和二级域名会被认为是两个不同的域。
拿本站举例来说,用户使用裸域名meiweier.com访问,并使用帐号登录,当他再次使用二级域名 www.meiweier.com 访问的时候,他并没有在登录状态,并且可以在 登录一次。这对普通用户来说可能会造成迷惑,不好。另外,一个网站同时使用裸域名和二级域名也不利于SEO。所以我希望用户访问裸域名的时候自动跳转到二 级域名www,就像豆瓣网,访问douban.com自动跳到 www.douban.com 一 样。
我使用HttpFox跟踪了一下douban的跳转过程,在浏览器中访问douban.com,HTTP请求过程截图如下:
可以看出,它是通过执行服务器端跳转(HTTP 302)来实现的。据此,首先想到的方法是,通过程序控制,检查用户访问的地址,如果是裸域名,则自动执行跳转。很明显,这个方法并不优雅,还会增加应用 程序的负担。由于meiweier.com使用的nginx,于是想到nginx有没有提供类似的功能。通过google,在一篇 国外的blog 上找到了方法,只是我要做的和他正好相反,但原理是一样的。在配置文件的server节增加如 下脚本:
if ($host != 'www.meiweier.com' ) {
        rewrite    ^/(.*)$    http://www.meiweier.com/$1    permanent;
}
重启nginx即可,够简单吧!
意外的收获,访问我的另外一个域名 www.meiweier.net 也 被自动跳转到 www.meiweier.com 了。不过这个结果,从上面 脚本就可以中看出来了。
nginx真是强大!
http://firefish.blog.51cto.com/298258/269622

使用nginx进行裸域名的跳转相关推荐

  1. Nginx配置从域名A跳转到域名B

    Nginx配置从域名A跳转到域名B 需求:已经有一个域名https://a.cn,然后想让访问a域名的直接访问https://b.cn **这里需要在A服务器的Nginx配置.** 配置 locati ...

  2. NGINX根据不同域名请求跳转同一台机器的不同项目

    1.实验环境及目的 CentOS Linux release 7.4.1708 (Core) nginx 1.12.1 aa.xiaowenxiao.xin.bb.xiaowenxiao.xin都解析 ...

  3. 多个域名向主域名自动跳转的Nginx配置

    if ($host = "bbs.umiwi.com"){ rewrite ^/(.*)$ http://bbs.youmi.cn/$1 permanent; } 多个域名向主域名 ...

  4. Nginx 配置一个域名使用HTTPS 后其它域名访问HTTPS时也会跳转到该站点解决

    nginx 同一个IP上配置多个HTTPS主机 Nginx 配置一个域名使用HTTPS 后其它域名访问HTTPS时也会跳转到该站点 对于https的域名在同一个IP上如何同时存在多个虚拟主机呢? 遂, ...

  5. centos 7.6——Nginx中rewrite模块应用(location)——基于域名的跳转等

    centos 7.6--Nginx中rewrite模块应用(location)--基于域名的跳转等 文章目录 centos 7.6--Nginx中rewrite模块应用(location)--基于域名 ...

  6. 域名自动跳转不搭建服务器,宝塔搭建的服务器WEB系统环境如果做域名301跳转

    宝塔搭建的服务器WEB系统环境如果做域名301跳转 今天老蒋遇到一个网友,服务器WEB系统环境是用宝塔搭建的,搭建的网站绑定过WWW域名和不带WWW域名,他是希望能全部统一到WWW的域名,这里应该是他 ...

  7. Nginx配置同一个域名同时支持http与https两种方式访问

    Nginx配置同一个域名http与https两种方式都可访问,证书是阿里云上免费申请的 server { listen 80; listen 443 ssl; ssl on; server_name ...

  8. Nginx实现二级域名店铺

    一般B2C或者C2C商城项目都会有二级域名店铺这个需求,本文利用Nginx实现二级域名店铺. 二级域名只访问店铺的首页,商品页依然采用www域名 Nginx配置如下: server {listen 0 ...

  9. Nginx 301重定向域名

    原文地址为: Nginx 301重定向域名 为何要使用301重定向 在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名.网页的扩展名改变.网站域名改变等.如果不做重定向,用户的收藏和 ...

最新文章

  1. Java爬虫--json数据处理:JSONObject的使用
  2. unity模块切换_(一)Unity3D模块介绍
  3. Vijos1451圆环取数[环形DP|区间DP]
  4. 重新理解“无容灾不上云”:应用多活将成为云原生容灾新趋势
  5. maven的三种packaging方式
  6. (70)Verilog HDL测试激励:复位激励2
  7. 【shell系列】之正则表达式
  8. java集合框架(二):HashTable
  9. 【luogu3372】线段树 1 模板
  10. java harris corner_Harris Corner Detection
  11. Linux操作系统——类UNIX系统
  12. 电脑维修的基本原则和方法
  13. 6阶群的非平凡子群_子群和Lagrange定理
  14. FI-盘盈盘亏借贷科目
  15. 元音I、i 、ε、æ、a小总结
  16. Ceph Calamari监控配置
  17. 码云上开源JAVA项目收藏
  18. 对角矩阵、对称矩阵、单位向量、正交矩阵
  19. 计算机的发展英语600词,计算机英语的词汇变化
  20. Android 用HorizontalScrollView实现ListView的Item滑动删除 ,滑动错乱 冲突

热门文章

  1. python实例-----名片管理系统
  2. 不同区域的多台UPS电源如何实现跨网段监控集中监控?
  3. .NET练习计算平方根
  4. 每日一题一题之 hiho1786 跳石头
  5. 脉冲matlab,matlab脉冲发生器 脉冲发生器matlab程序.doc
  6. 发现聪明的投资者都是这样止损的
  7. 【pytorch】Module.parameters()函数实现与网络参数管理
  8. 【机器学习-周志华】学习笔记-第十五章
  9. subversion代码管理器安装配置
  10. div内的内容分散对齐