Javascript Nginx位置块不适用于链接

Javascript Nginx位置块不适用于链接,javascript,node.js,express,nginx,next.js,Javascript,Node.js,Express,Nginx,Next.js,我有以下资料: location /ron-swanson-quotes/ { return 301 /ron-swanson/; } 还有一个SSR React next.js应用程序 此处的重写适用于外部访问站点的用户,但如果我单击内部链接,则不适用。nginx是否能够监听节点中发生的事情,或者nginx是否从不知道它们 编辑:当它链接到外部时,重定向效果良好。从应用程序中单击时,Nginx日志如下: [2018-03-05T19:06:13+00:00] #######.

我有以下资料:

location /ron-swanson-quotes/ {
  return 301 /ron-swanson/;
}      
还有一个SSR React next.js应用程序

此处的重写适用于外部访问站点的用户,但如果我单击内部链接,则不适用。nginx是否能够监听节点中发生的事情,或者nginx是否从不知道它们

编辑:当它链接到外部时,重定向效果良好。从应用程序中单击时,Nginx日志如下:

[2018-03-05T19:06:13+00:00] #######.xyz 71.211.##.## "GET /communicator/paulo-coelho/ HTTP/1.1" 304 "http://####.xyz/x-paulo-coelho-quotes-that-will-soothe-your-aching-heart/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36" 1.180

谢谢

前端的开发版本也是SSR吗?您可能需要将链接从相对路径更新为绝对路径,并确保不使用React Router链接组件。React路由器可能处理相对路径,因为它将其视为前端路由,所以使用绝对路径,而不使用链路组件通过Nginx发送请求

范例

与此相反:

<Link to='/ron-swanson-quotes'>Ron Swanson</Link>
罗恩·斯旺森 这样做:

<a href='https://yourronswansonwebsite.com/ron-swanson-quotes'>Ron Swanson</a>

干杯

所以

我们使用的软件包是
custom express server
。我意识到,与使用nginx相比,更好的选择是使用一组重定向,在自定义express设置中使用重定向,在
getInitialProps
中使用前端重定向


当我们在getInitialProps中执行重定向时,页面转换中断,因此我们必须在其中硬编码这些转换。

取决于您的内部链接是什么?它们是完全匹配这条路径,还是略有不同?它们完全匹配这条路径。我的直觉是,nginx甚至不知道这一点,因为server.js负责应用程序的路由。内部链接基本上是React Router/Next Router,它点击server.js请求路径(“/Next”),您如何为
index.html
提供服务?从Nginx还是从特快路线?特快。Nginx接收请求,但发送304,因此我认为这是express发挥作用的地方,并按正常方式发送请求(正常不是我想要的。Nginx需要处理)。感谢您的回答,但在中进行进一步调查后,这似乎是Nginx的问题。