.NET Core RedirectToAction 在 Nginx 后面无法正常工作

Posted

技术标签:

【中文标题】.NET Core RedirectToAction 在 Nginx 后面无法正常工作【英文标题】:.NET Core RedirectToAction not working correctly behind Nginx 【发布时间】:2021-12-16 09:28:12 【问题描述】:

我正在尝试在 nginx 后面部署我的 web api。

我的 Web API 总是以 http://<host>/api/<controllerName> 开头 但我使用 Nginx 反向代理来处理测试和生产服务器请求

测试服务器http://<host>/api/<controllerName>/<action>的请求转到http://<host>/test/api/<controllerName>/<action>

到目前为止一切正常,除了我在某些操作中使用RedirectToActionResult。它仍然重定向到 url 到 http://<host>/api/<controllerName>/<action> 格式。有什么办法可以调整RedirectToActionResult 以使用http://<host>/test/api/<controllerName>/<action> 之类的前缀重定向?

或者我必须用前缀路径修改整个 API 服务器 url。

【问题讨论】:

【参考方案1】:

您可以在您的环境中设置ASPNETCORE_PATHBASE=/test

在您的Startup.cs 中,您可以添加以下代码。

var pathBase = Environment.GetEnvironmentVariable("ASPNETCORE_PATHBASE");
app.UsePathBase(new PathString(pathBase))

相关文章:

ASP.Net Core Reverse Proxy with different root

【讨论】:

以上是关于.NET Core RedirectToAction 在 Nginx 后面无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)区别

net/core/pktgen.c怎么修改

细说.net core Startup

Asp.net core 配置文件

asp.net core 注入后仍然报错?

Asp.Net core (Full .Net framework) vs Asp.Net core (.Net Core) 性能