javascript - Nginx 位置 block 不适用于链接

标签 javascript node.js express nginx next.js

我有以下内容:

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>

干杯

关于javascript - Nginx 位置 block 不适用于链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49117018/

相关文章:

javascript - SailsJS : Requiring Assets, 例如 sails.io.js

node.js - 使用 mocha/chai 确保 REST API 提供文件?

javascript - 点击图像旋转 360 度

javascript - 如何在 nodejs 的 views 文件夹中包含 View 相关的 javascript (*.js) 文件?

node.js - 在 Node 中使用 fork 子进程时如何捕获错误?

javascript - NodeJs,500 无法获取访问 token (错误 : connect ECONNREFUSED) at at process. _tickCallback (node.js:419:13)

javascript - (带有 bodyParser 的 Node :5132) DeprecationWarning: `DEBUG_FD` is deprecated.

node.js - ExpressJS 请求正文中 JSON 中的反斜杠 - 使用 body-parser

javascript - 如何从 Angular Directive(指令)中的数组中删除

javascript - Sinon,嵌套 stub