首页 > nginx部署 angularjs时的rewrite问题

nginx部署 angularjs时的rewrite问题

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

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

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

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

在此请教nginx高手


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

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

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

【热门文章】
【热门文章】