继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

nginx重定向解决域名变更问题

纯情掉了一地
关注TA
已关注
手记 33
粉丝 30
获赞 84

前后分离项目中的跨域方案,最常见的便是cors方案 ,mdn关于cors的描述:

场景:用户可以通过输入 www.xinzejy.cn 或者 xinzejy.cn访问网站,但之前的cors设置是这样的

Access-Control-Allow-Origin:"http://xinzejy.cn"
Access-Control-Allow-Credentials: true

所以用户通过www.xinzejy.cn访问,就出现跨域问题,因为域名不同。坑的地方在于浏览器控制台会显示当前域名为xinzejy.cn ,没有经验的话就觉得不是跨域问题了,于是添加了新的代码

Access-Control-Allow-Origin:"http://xinzejy.cn"
Access-Control-Allow-Origin:"http://www.xinzejy.cn"
Access-Control-Allow-Credentials: true

还是不行,排查后发现是因为做了第三方登录,github的回调地址还是http:xinzejy.cn/github_callback
难道要改github地址吗?如果域名还需要变更,还要改服务器代码?,于是查找nginx重定向的问题,解决方案是将www.xinzejy.cn 永久重定向到 xinzejy.cn 如下(同时恢复cors设置):

server {
        listen       80;
        # 301 
        server_name xinzejy.cn www.xinzejy.cn; 
        if ($host ~* www.xinzejy.cn) { 
            rewrite ^/(.*)$ http://xinzejy.cn/$1 permanent; 
        }
        # vue history mode
        location / {
            root   www;
            index  index.html;
            try_files $uri $uri/ /index.html;
        }       
}

问题暂时解决。

收获总结:

  1. permanent:美 /ˈpɜːrmənənt/ adj. 永久的,永恒的;不变的
  2. temporarily:美 /ˌtempəˈrerəli/ adv. 临时地,临时
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP