全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: 3000

原生的php如何实现路由功能?

[复制链接]
发表于 2019-1-4 22:29:21 | 显示全部楼层
本帖最后由 wcn 于 2019-1-4 22:32 编辑

任何url都要web服务器解释的啊

www.xx.com/detail.php?id=123 告诉web服务器这是个php文件,web服务器执行这个php,并返还结果给客户端。

www.xx.com/detail/123 这个url, 任何web服务器都不会当作php执行吧?!
当然如果你在web服务器里设置,是可以的。不过既然你都去设置web服务器了,为啥不rewrite ?

点评

我估计楼主是个虚机,设置不了  发表于 2019-1-4 22:31
 楼主| 发表于 2019-1-4 22:34:29 来自手机 | 显示全部楼层
wcn 发表于 2019-1-4 22:29
任何url都要web服务器解释的啊

www.xx.com/detail.php?id=123 告诉web服务器这是个php文件,web服务器执行 ...

ASP.net是直接在代码里面配置的,这样迁移项目就不需要迁移nginx配置文件啥的。如果用nginx的rewrite来实现,那换服务器啥的就必须把这个rewrite规则也迁移过去。
发表于 2019-1-4 22:40:33 | 显示全部楼层
3000 发表于 2019-1-4 22:34
ASP.net是直接在代码里面配置的,这样迁移项目就不需要迁移nginx配置文件啥的。如果用nginx的rewrite来实 ...


不是很了解。我的理解,你说的ASP.net 环境中,任意url WEB服务器都是用ASP.net执行处理的,这样的确是可以通过ASP.NET代码实现。
楼主说的情况,前提是要WEB服务器把www.xx.com/detail/123这个URL解释为php执行。否则我任务不可能实现楼主的诉求的。
 楼主| 发表于 2019-1-4 22:48:11 | 显示全部楼层
王者 发表于 2019-1-4 22:21
https://medium.com/the-andela-way/how-to-build-a-basic-server-side-routing-system-in-php-e52e613cf24 ...

打不开。。。
发表于 2019-1-4 22:55:47 | 显示全部楼层
如果你使用php作为web引擎(php -s)可以
但是如果你使用nginx/apache/或者其它web引擎+php则不可以
发表于 2019-1-4 22:55:51 | 显示全部楼层
你这样,最少也需一条rewrite,就是把所有 链接都转发到一个 总php文件上

这个PHP文件专门作路由,“挑选”不同的参数的  转发到 不同的真正的php文件上去执行
发表于 2019-1-4 23:00:47 来自手机 | 显示全部楼层
每个网站都有自己的nginx.conf 可以把每个网站的rewrite写进去
发表于 2019-1-5 14:09:56 | 显示全部楼层
这得配合伪静态模块实现的.你可以百度教程..
发表于 2019-1-5 14:16:52 | 显示全部楼层
生成静态文件
发表于 2019-1-5 14:55:04 | 显示全部楼层
index.php入口文件,然后解析参数映射路由,可以参考symfony框架
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-4-10 11:05 , Processed in 0.060031 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表