使用nginx重写url地址,并转发到重写后的地址

例如:
请求http://xxx.com/pro/class-mode
实际转发到地址http://xxx.com/pro/class/model
而请求http://xxx.com/pro/class不进行转发
其中的proclassmode都是可变的值,不考虑这三者中含有-(横线)的情况
要求浏览器地址栏url不能变化

我的思路是用rewriteproxy_pass配合使用,匹配到符合规则的路由后,进行路由重写,将中间的横线改成斜杠,然后再转发重写后的路由,但是一直都是重定向效果。
非常感谢各位解答,蟹蟹

阅读 12.5k
1 个回答

rewrite当然会重定向,只用 转发就可以了啊,

location /(.*?)/(.*?)-(.*?)/ {
    proxy_pass http://xxx.com/$1/$2/$3/;
}

试一下看看

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题