一个 nginx 的问题好奇是怎么做到的,比如 node.js 不是访问 js 文件而是跳转到指定页面

2022-07-11 12:02:30 +08:00
 fanchenio
比如 https://stackoverflow.com/questions/tagged/node.js

stackoverflow 是通过地址跳转到了指定的标签页,我想问问怎么做到的,我自己也有个标签是 node.js 。

比如 https://www.xxxxxxx.com/tag/node.js 直接就是访问的 js 文件,而我想和 stackoverflow 一样跳转到我自己的 node.js 标签页面,想知道 stackoverflow 咋做到的?没访问 js 文件而是跳转到了标签页,是通过 nginx 实现的吗?有大佬知道吗?
1096 次点击
所在节点    问与答
8 条回复
ysc3839
2022-07-11 12:10:57 +08:00
HTTP 请求的路径不一定要对应文件系统中的文件,只不过 nginx 等 HTTP 服务器默认这么做而已。nginx 可以用 proxy_pass 转发给别的程序处理,就不会访问到文件了。
wonderfulcxm
2022-07-11 12:13:01 +08:00
URL rewrite
Lqxc
2022-07-11 12:26:01 +08:00
我一直是用 http header 控制的
cheng6563
2022-07-11 12:42:23 +08:00
本来就是优先反代接口而不是优先查找文件
wdssmq
2022-07-11 12:43:29 +08:00
location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}

关键「伪静态」
wdssmq
2022-07-11 12:45:50 +08:00
「水坑」略深入的讲解伪静态相关的知识_电脑网络_沉冰浮水

https://www.wdssmq.com/post/20190704012.html
fanchenio
2022-07-11 13:02:40 +08:00
@wdssmq 谢谢。
Al0rid4l
2022-07-12 10:19:03 +08:00
本质上是你的主观期望 node.js 的地址给你返回一个 js 文件, 但实际上没有任何规定服务端一定要返回个文件给你...他完全可以看一眼地址是 node.js 但是给你一个 node.cpp 或者其他任意什么...
地址就只是地址, 只是字符串, /node.js 和 /foo 没有本质区别, 之所以会有疑问仅仅是你先入为主的期望而赋予了 /node.js 不同的含义

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865395

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX