搜索

首页  >  问答  >  正文

angular.js - nginx部署 angularjs时的rewrite问题

使用h5 angularjs完成了一个项目
此项目在正式环境上使用nginx做webserver

此项目的入口在微信/微博分享中
由于分享时的项目访问地址中含有’#‘(类似:test.com/#/goods)
’#‘的位置会被微博微信所修改
导致分享后的地址无法正常访问

所以分享时要去掉地址中的’#‘
也就是分享的链接是:test.com/goods

但是项目入口时如果没有#也会异常
此时是否可以通过nginx rewrite test.com/goods 到 test.com/#/goods
这里如何写rewrite

在此请教nginx高手

巴扎黑巴扎黑2776 天前611

全部回复(1)我来回复

  • 我想大声告诉你

    我想大声告诉你2017-05-15 16:52:12

    可以考虑使用 html5 里的 pushState 来去掉 # 号。
    在 config 方法里注入 $locationProvider, 然后设置 $locationProvider.html5Mode(true)。参见 http://docs.angularjs.cn/api/ng/provider/$locationProvider
    nginx 的话应该可以这样

    rewrite ^/(.*)$ http://test.com/#/ redirect;
    

    用 302 跳转来改变 url,没有亲测,可以试下看看

    回复
    0
  • 取消回复