Php 从公用目录请求URI

Php 从公用目录请求URI,php,routing,frameworks,uri,Php,Routing,Frameworks,Uri,下午好 我正在创建我的PHP框架,在使用localhost时解决了这个问题。问题是,我有几个项目是从一个目录通过本地主机运行的 比如说 我的项目有:示例项目1、示例项目2、示例项目3 要访问它们,我有锚和索引页面。因此,如果我想访问示例项目1,我的URL如下所示: 问题 因为我创建了一个框架,所以我也在创建路由和请求URI,如下所示: public static function uri() { return trim( parse_url($_S

下午好

我正在创建我的PHP框架,在使用localhost时解决了这个问题。问题是,我有几个项目是从一个目录通过本地主机运行的

比如说

我的项目有:示例项目1、示例项目2、示例项目3

要访问它们,我有锚和索引页面。因此,如果我想访问示例项目1,我的URL如下所示:

问题

因为我创建了一个框架,所以我也在创建路由和请求URI,如下所示:

public static function uri()
    {
        return trim(
            parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'
        );
    }
但这会返回我的完整项目路径“home.imphus.net%20%5bv3.0%5d/public”,我需要它只返回“/”,或者如果返回“home.imphus.net%20%5bv3.0%5d/public/users”,它应该返回“users”

我知道有人可能会问这个问题,但我找不到适合自己的答案

谢谢你们的帮助,伙计们


Eddie

这很奇怪,前提是
$\u服务器['REQUEST\u URI']
解析url(…,PHP\u url\u PATH)
只返回路径,而不是完整的url。尝试向函数中添加一些回显,以打印或记录请求\u URI的内容,然后一步一步地记录解析\u url的结果。其中的.htaccess和重写规则可能有问题吗?我想你在我的问题中弄错了home.imphus.net是目录而不是域,完整URL看起来像localhost/home.imphus.net%20%5bv3.0%5d/public',但问题是,我想从公共目录获取请求URI,而不使用项目目录和公共目录。如果这是一个静态前缀(在不同的请求之间不会更改),为什么不跳过字符串的前N个字符呢?类似于
define('BASEPATH_LENGTH',strlen('home…/public'))
(在全局级别),然后
返回substr(trim(…),BASEPATH_LENGTH)(在
uri
函数中)。目前它是静态的,但总的来说,我计划重用这个框架,所以我希望它是动态的