V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ChunkitAu
V2EX  ›  程序员

关于 网页 url

  •  
  •   ChunkitAu · 2020-03-31 22:17:16 +08:00 · 2724 次点击
    这是一个创建于 1702 天前的主题,其中的信息可能已经有所发展或是发生改变。

    类似 https://www.xxxx.com/article/274

    article 为属性名 274 为值

    这样格式是怎么实现的?通过 nginx 获取属性转发?

    有没有什么前端的方式?

    14 条回复    2020-04-01 10:10:34 +08:00
    yafoo
        1
    yafoo  
       2020-03-31 22:27:06 +08:00 via Android
    伪静态 url 重写
    littleylv
        2
    littleylv  
       2020-03-31 22:52:36 +08:00
    什么属性名什么值的。。。不要乱起名字呀
    YongkeLi
        3
    YongkeLi  
       2020-03-31 22:55:27 +08:00 via Android
    服务端路由配置
    lhx2008
        4
    lhx2008  
       2020-03-31 22:56:57 +08:00 via Android
    伪静态是 PHP 特色,其他语言都是可以直接自己解析的
    MikeLei
        5
    MikeLei  
       2020-04-01 00:15:31 +08:00
    这个主要是看路由,前端 Vue 可以实现,后端能实现的就更多啦,例如 spring boot,WebApi 等等框架,带路由的,就都能实现。
    ljpCN
        6
    ljpCN  
       2020-04-01 00:29:57 +08:00 via Android
    RESTful API 了解一下
    ljpCN
        7
    ljpCN  
       2020-04-01 00:30:52 +08:00 via Android
    @ljpCN 楼主要前端的话,react-router,vue-router 了解一下
    580a388da131
        8
    580a388da131  
       2020-04-01 03:35:11 +08:00
    @lhx2008 可以把 nginx 之类视为 php 的组件嘛 😜
    580a388da131
        9
    580a388da131  
       2020-04-01 03:58:16 +08:00
    要么就是服务器获取到路径转给后端处理 也就是伪静态
    要么就是网易云那样用 hash ( https://www.xxxx.com/#article/274) 获取到路径转成 get 用 ajax 拉取数据
    vue 的话这种路由还是要配置伪静态 否则刷新会 404
    ysc3839
        10
    ysc3839  
       2020-04-01 04:46:52 +08:00 via Android
    一般这种 URL,nginx 不做任何处理,直接传递给后端处理。后端是个 HTTP 服务器的话用 proxy_pass,后端是 PHP 的话用 try_files 。
    当然也可以用 rewrite 提取出 article 和 id 再传给后端。
    ysc3839
        11
    ysc3839  
       2020-04-01 04:56:11 +08:00 via Android   ❤️ 1
    @lhx2008 准确来说“伪静态”大概是 CGI 的特色。CGI 是请求某个路径时会去执行路径对应的程序,这就要求 URL 必须对应真实存在的文件。
    即使 PHP 支持了 FastCGI,但还是没脱离传统 CGI 那种根据请求的路径从头执行程序的模式。真正的 FastCGI / HTTP 后端会一直运行,等待请求到来后进行处理。
    ETiV
        12
    ETiV  
       2020-04-01 07:12:33 +08:00 via iPhone
    大概实现这个的核心就是“单入口”了,无论什么路径都可以丢给某个单入口的程序,由它自己判断该如何呈现页面、或者 404
    nginx 的 try_files 的目的也是先测试静态文件路径,没有找到再丢给后面的一项配置,最后有一个兜着底的 /index.php

    nginx 可以吗?可以
    兴许这个 URL 访问的后端地址是 /article.php?id=274 也说不定

    前端:history api
    Jacky23333
        13
    Jacky23333  
       2020-04-01 09:37:40 +08:00 via Android
    SpringBoot 可以直接获取呀
    ChunkitAu
        14
    ChunkitAu  
    OP
       2020-04-01 10:10:34 +08:00
    @ljpCN @Jacky23333 我问的不是 RESTful API 是 url 例如 本贴链接 https://www.v2ex.com/t/658115#r_8764132
    返回是是当前网站。 我现在用 nginx 部署的链接 一般是 https://www.v2ex.com/xxx.html ? t = 658115 & y = r_8764132
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1230 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:08 · PVG 02:08 · LAX 10:08 · JFK 13:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.