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