问题是这样的:我购买相关商品(由于是用账户余额购买,所以不用第三方支付等),购买成功以后跳转到一个购买成功页面。。。。。。。
例如:我购买前的页面是http://www.temp.com/Payment/Pay
然后购买成功后,会通过这样的代码跳转:
string url = Url.Action("Success", new { userID = userID }); return Redirect(url );
正常应该跳转到http://www.temp.com/Payment/Success?userid=123 ,但是现在却跳转到了这样的地址:http://www.temp.com:809/Payment/Success?userid=123 ,
多加了一个809端口,这样导致根本找不到这个页面,有人遇到这个问题么?
你看看能否在这里使用相对路径,如果用觉得的url的话,导致你真正的请求是通过nginx转发的,而你的程序却不知道,导致根路径取错了。
这个地方确实是使用的相对路径,代码中得到的url就是/Payment/Sucess?userid=123
这意思是nginx转发的请求,我程序是不知道的?
@顾晓北: 程序肯定不知道是不是转发来的呀,我感觉你那么url应该是个绝对路径才对。我搞个mvc项目试试
@幻天芒: 我得到的url是相对路径是没错的,就是/Payment/Sucess?userid=123 ,浏览器不知道是不是转发过来的也没错。但是现在我是不知道该如何去解决这个问题,因为我没折腾过nginx,nginx也不是我配置的。。。
@顾晓北: 我测试过了,正确的nginx配置是不会出现错误的,怀疑是配置问题。
@幻天芒: 问过了相关同事,说这个nginx两台服务器的端口都是809,貌似是有其他站点用到了80端口,估计这个配置是改不了了,那这样的话,这种跳转只能是自己手动去掉端口号了吧?
@顾晓北: 我一般的做法是nginx监听80,然后其他请求全部通过nginx转发。
@幻天芒: 反正我也不太明白,80的跟这个809的端口的项目虽然不是一个,但域名是一个,为什么不配置成都是80?反正我是不太明白。。。
@顾晓北: 我想,是不是可以nginx转发请求到nginx。。
我觉得你是nginx配置出错了