关于 网页 url

2020-03-31 22:17:16 +08:00
 ChunkitAu

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

article 为属性名 274 为值

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

有没有什么前端的方式?

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

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

前端:history api
Jacky23333
2020-04-01 09:37:40 +08:00
SpringBoot 可以直接获取呀
ChunkitAu
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

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

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

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

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

© 2021 V2EX