使用PHP以正确的方式路由页面请求

我需要知道“正确”执行网站导航的术语和最佳做法吗?类似于stackoverflow在你通过url提出问题时如何路由你:

“https://stackoverflow.com/questions/ask”

根据我对PHP编程的了解,我可能会像这样编写代码

“https://stackoverflow.com/index.PHP?p=questions\u0026amp;act=ask”

希望你明白我的意思.我想知道这种页面导航和请求/响应处理方法的术语,如果可能的话,在使用此标准/方法设计Web应用程序时需要记住的最佳实践,限制或其他任何内容.我甚至不知道这是用PHP还是用ASP或Ruby编写的一些Web后端完成的,或者你有什么用,所以我用猜测填充了标签.

解决方法:

大多数MVC框架使用的模式是调用路由器的front controller.前端控制器通常是Web根目录中的index.PHP.接下来,所有不适用于现有文件(如js,css和image资产)的请求都需要发送到此控制器.在apache中,您可以使用mod_rewrite执行此操作:

RewriteRule ^index\.PHP$- [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.PHP [L,QSA]

但是,Apache 2.5中推荐的方法是使用FallbackResource

FallbackResource index.PHP

IIS has similar functionality如果你正在使用它.

在index.PHP中,您可以使用$_SERVER [‘REQUEST_URI’]访问最初请求的URL.您应该包括您的路由器(应该在Web根目录之外)并使用请求URI调用它.例:

require '../router.PHP';

$router = new Router();
$router->process($_SERVER['HTTP_METHOD'], $_SERVER['REQUEST_URI'], $_GET, $_POST);

然后您的路由器可以找到适当的控制器来路由请求.阅读更多关于MVC framework,并研究some examples以更好地了解其他人如何实施它.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...