利用Nginx rewrite规则实现域名显性转发

体验更优排版请移步原文http://blog.kwin.wang/website/nginx-rewrite-realize-domain-forward.html

 

  自己的blog域名最开始用的vblog.win,后来搞到kwin.wang就换用了 http://blog.kwin.wang 这个子域名,原先使用米发把vblog.win转发到主站,后来米发用了一段时间就不能正常转发了,证明免费的东西还是不太靠谱,前段时间将自己的网站重新改版建立了一下,几个站点使用Nginx做反向代理,这里就想用Nginx来实现一下域名转发。

  Nginx有个rewrite规则,就是用来实现URL重定向的,这里简单介绍:

 

  rewrite    <regex>    <replacement>    [flag];

       关键字       正则           替代内容          flag标记

 

  flag标记说明:

  last  //本条规则匹配完成后,继续向下匹配新的location URI规则

  break  //本条规则匹配完成即终止,不再匹配后面的任何规则

  redirect  //返回302临时重定向,浏览器地址会显示跳转后的URL地址

  permanent  //返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

 

  我的配置是这么写的:

server {
    listen       80;
        
    server_name  vblog.win www.vblog.win;
    rewrite /.* http://blog.kwin.wang$uri permanent;
}

  这里 $uri 是指匹配正则后跳转的目标地址,比如访问 vblog.win/about 就会跳转到 http://blog.kwin.wang/about,非常简单。

  

  使用域名转发有利于网站首选域的确认,多个路径对应同一资源域的情况应该尽量采用这种方式来处理,有利于网站权重的集中,对于搜索引擎和用户来说都很友好。另外,对Nginx rewrite的介绍比较简单,更深层次使用场景还有待研究。

 

posted @ 2018-07-29 20:48  Kwin的全栈之路  阅读(2013)  评论(2编辑  收藏  举报