为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Node.js Html5 CSS3

前后分离项目中的跨域方案,最常见的便是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. 临时地,临时
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消