为了账号安全,请及时绑定邮箱和手机立即绑定

说明如何在PHP中使用简单的路由系统

说明如何在PHP中使用简单的路由系统

PHP
一只甜甜圈 2021-06-16 17:41:53
大家好,我是 PHP 路由系统的新手。在网上搜索我找到了这个简短的代码来解释路由应该如何工作但是......我无法理解它以哪种方式将我的请求路由到所需的页面:<?php// Get the requested path with $_SERVER['REDIRECT_URL'],// and require the page you want to display. I have '' and '/' for both url.com/ and url.com.// REDIRECT_URL returns normal url e.g. /review,// in the other hand REQUEST_URI returns including query string e.g. /review?page=4$request = $_SERVER['REDIRECT_URL'];switch ($request) {    case '/' :        require __DIR__ . '/views/index.php';        break;    case '' :        require __DIR__ . '/views/index.php';        break;    case '/about' :        require __DIR__ . '/views/about.php';        break;    default:        require __DIR__ . '/views/404.php';        break;}当我第一次打开它时,它会将我重定向到 index.php:<h1>main</h1>另一个页面是about.php:<h1>about</h1>我的问题是:如何使用路由系统切换到about.php?因为如果我在 url localhost/simpleRouter/views/about.php 里面写它看起来我绕过了路由系统......所以我不知道如何正确使用它来在页面之间切换。Morover,index.php 页面向我显示了 MAIN,这很好,但我收到以下信息:注意:未定义索引:第 9 行 D:\App\xAMPP\htdocs\studio\Php\SviluppareInPHP7\CAP7\simpleRouter\index.php 中的 REDIRECT_URL感谢您回答我的问题并帮助我提高我在该领域的知识。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

您正在寻找 URL 重写。您可以配置您的网络服务器(Apache、NGinx 等)来重定向所有或部分请求,例如到您的 router.php。

Apache URL 重写
NGinx URL 重写

在您的 router.php 中,您可以提取最初请求的 URL,例如about.php. 请注意,这与views/about.php. 然后“路由器”包含指定的文件。这允许您使用任意 URL 而不是文件名。

还可以在此处查看REDIRECT_URL 和 REQUEST_URL 之间的区别。


查看完整回答
反对 回复 2021-06-25
  • 1 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信