我有以下几点:
location /ron-swanson-quotes/ {
return 301 /ron-swanson/;
}
还有一个SSR React next.js应用程序。
此处的重写适用于外部访问该网站的人,但如果我单击内部链接则不行。 Nginx是否能够监听 Node 中发生的事情,还是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 Link组件。由于React Router将其视为前端路由,因此它可能正在处理相对路径,因此请使用绝对路径而不使用链接组件来通过Nginx发送请求。
例子
代替这个:
<Link to='/ron-swanson-quotes'>Ron Swanson</Link>
做这个:
<a href='https://yourronswansonwebsite.com/ron-swanson-quotes'>Ron Swanson</a>
干杯