V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fanchenio
V2EX  ›  问与答

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

  •  
  •   fanchenio · 2022-07-11 12:02:30 +08:00 · 1192 次点击
    这是一个创建于 858 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 https://stackoverflow.com/questions/tagged/node.js

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

    比如 https://www.xxxxxxx.com/tag/node.js 直接就是访问的 js 文件,而我想和 stackoverflow 一样跳转到我自己的 node.js 标签页面,想知道 stackoverflow 咋做到的?没访问 js 文件而是跳转到了标签页,是通过 nginx 实现的吗?有大佬知道吗?
    8 条回复    2022-07-12 10:19:03 +08:00
    ysc3839
        1
    ysc3839  
       2022-07-11 12:10:57 +08:00 via Android
    HTTP 请求的路径不一定要对应文件系统中的文件,只不过 nginx 等 HTTP 服务器默认这么做而已。nginx 可以用 proxy_pass 转发给别的程序处理,就不会访问到文件了。
    wonderfulcxm
        2
    wonderfulcxm  
       2022-07-11 12:13:01 +08:00 via iPhone
    URL rewrite
    Lqxc
        3
    Lqxc  
       2022-07-11 12:26:01 +08:00 via Android
    我一直是用 http header 控制的
    cheng6563
        4
    cheng6563  
       2022-07-11 12:42:23 +08:00
    本来就是优先反代接口而不是优先查找文件
    wdssmq
        5
    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
        6
    wdssmq  
       2022-07-11 12:45:50 +08:00
    「水坑」略深入的讲解伪静态相关的知识_电脑网络_沉冰浮水

    https://www.wdssmq.com/post/20190704012.html
    fanchenio
        7
    fanchenio  
    OP
       2022-07-11 13:02:40 +08:00
    @wdssmq 谢谢。
    Al0rid4l
        8
    Al0rid4l  
       2022-07-12 10:19:03 +08:00
    本质上是你的主观期望 node.js 的地址给你返回一个 js 文件, 但实际上没有任何规定服务端一定要返回个文件给你...他完全可以看一眼地址是 node.js 但是给你一个 node.cpp 或者其他任意什么...
    地址就只是地址, 只是字符串, /node.js 和 /foo 没有本质区别, 之所以会有疑问仅仅是你先入为主的期望而赋予了 /node.js 不同的含义
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5511 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 08:55 · PVG 16:55 · LAX 00:55 · JFK 03:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.