Slim 框架 - 无法用点解释路由

2024-01-18

问题陈述

我目前正在开发内部 RESTful API,并使用我们的主域名作为环境标识符。然而,我注意到 Slim 根本不喜欢其中有点的路线。

示例案例

我有一个使用 PHP 内置 Web 服务器运行的本地 Web 服务器,并且我调用了php -S 0.0.0.0:5000让它运行。

一旦网络服务器启动,我就会在索引页面上显示一个简单的“hello world”。一切都运转良好,花花公子。

然后我设置了一条路线,如下所示:

$app->get('/:domain/:id', function($domain, $id) 
{
    echo $domain . ' ' . $id;
} 

有了这个,我设置了路线希望解决0.0.0.0:5000/apple.com/juicers。我尝试过0.0.0.0:5000/apple/juicers该页面打印出苹果榨汁机。但与0.0.0.0:5000/apple.com/juicers,我得到一个404 未找到 error.

到目前为止我尝试过的

网址重写

我在 Google 上查找了可用资源,还从 Slim 框架的 Github issues 中查找了可用资源。好像有人遇到过类似的问题:https://github.com/codeguy/Slim/issues/359 https://github.com/codeguy/Slim/issues/359

该票证中提出的解决方案是:URL重写修复。我尝试过但没有成功。我设置了一个.htaccess在我的项目目录的根目录下,并打开AllowOverRide All在我的 Mac 的 httpd.conf 文件中。

php -S 0.0.0.0:5000 索引.php

而不是跑步php -S 0.0.0.0:5000我在index.php 上运行了该命令。此时,slim 框架不会抛出“未找到”错误,而是解析为我的基本路线,我将其设置如下:

$app->get('/', function() { echo "hello world"; });

谢谢

我已无计可施,任何帮助将不胜感激。非常感谢您的阅读!


苗条靠的是$_SERVER['SCRIPT_NAME']这应该是路由文件(Apache 的DirectoryIndex,以及 Rewrite 指向的文件。比方说index.php对于下面的例子)。

在 PHP 嵌入式服务器中,如果 URI 在文件部分包含点,则 PHP 无法正确定位 SCRIPT_NAME 值。

您可以使用以下调整来模仿RewriteRule行为:

创建一个router.php文件并通过 PHP 嵌入式服务器发送所有请求:

$_SERVER['SCRIPT_NAME'] = 'index.php';
include 'index.php';

然后,使用以下命令启动 PHP 嵌入式服务器:

php -S 0.0.0.0:<port> -t <your-Http-document-root> router.php

The router.php文件不会在您的生产环境中使用。只有 PHP 嵌入式服务器使用它,它应该可以解决您的“带有点的路由”问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Slim 框架 - 无法用点解释路由 的相关文章

  • PHP - 如何获取主要 HTML 内容,例如 Firefox 中的阅读器模式

    在 android Firefox 应用程序和 safari iPad 中 我们只能通过 阅读器模式 阅读主要内容 阅读更多 http support mozilla org en US kb how enable reader mode
  • 如何使用mod_headers和mod_expires进行缓存

    我想在我的网站上缓存图像和其他文件 所以我所做的是确保 mod headers 和 mod expires 具有 usr sbin httpd l 然后将 htaccess 编辑为 ExpiresActive On ExpiresDefau
  • 使用 PHP/linux 将文件合并为单个 PDF

    我正在研究如何将多个 PDF 合并为一个 PDF 我正在寻找一个图书馆可靠且坚固尽可能 最好有一个库可以保留书签 鬼脚本 http pages cs wisc edu ghost 可以在保存书签的位置进行连接 但我遇到了麻烦 在一种情况下它
  • 分页显示所有其他页面上第 1 页的相同帖子

    我最近在创建即将发生的事件列表时得到了很多帮助 请参阅此处显示即将举行的活动 包括今天的活动 https stackoverflow com questions 17343615 showing upcoming events includ
  • 使用 PHP glob 列出 FTP 服务器上的文件不起作用

    我使用此代码来访问目录 location files pictures glob location png 我想使用 FTP 访问远程路径 location opendir ftp user password host name files
  • 在哪里可以获得 PHP 5.3+ 的 runkit DLL 扩展?

    这是一个简单的问题 我在哪里可以获得 PHP 5 3 版本的 runkit 扩展 它的手册 http php net manual en book runkit php http php net manual en book runkit
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • 使用 PHP 从 Mongo 解码 JSON

    我已经看过这个线程 PHP 解码嵌套 JSON https stackoverflow com questions 3555335 php decode nested json并没有设法用它来解决我的问题 我目前正在从 Mongo 获取 J
  • 带倒计时的php循环

    假设我从 400 开始计数器 我将如何执行一个向后运行直到 0 的 foreach 循环 伪代码 i 400 foreach SOMETHING do stuff i for i 400 i gt 0 i do stuff 其他方法 i 4
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • 我可以使用 mod_rewrite 更改文件扩展名吗?例如 .jpeg 到 .jpg

    我希望使用 Apache mod rewrite 将文件提供为 jpg 而不是 jpeg 这可能吗 尝试这个 RewriteEngine on RewriteRule jpeg 1 jpg
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • 如何在 PHP 5.6 中通过 php.ini 设置“verify_peer_name=false”SSL 上下文选项

    案例 我想打开 SSL 连接localhost而 SSL 证书是 FQDN 的问题 问题 没有进行特殊处理就行 下面的程序失败并显示以下消息 PHP Warning stream socket enable crypto Peer cert
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常
  • SSL 适用于浏览器、wget 和curl,但不适用于 git

    我有一个网站 用于托管 redmine 和几个 git 存储库 这非常适合 http 但我无法使用 https 进行克隆 即 git clone http mysite com git test git 工作正常 但是 git clone
  • PHP更改小数点分隔符

    在某些情况下 PHP 会在操作后更改小数点分隔符 下面是一个示例 为什么小数点分隔符变成 这是一个多语言网站 在西班牙语版本中 区域设置设置为西班牙语 es ES 小数点分隔符为 这就是为什么正在改变 解决方案是强制 LC NUMERIC

随机推荐

  • 将 std::vector 转换为 NumPy 数组而不复制数据

    我有一个 C 库 当前有一些方法返回一个std vector定义为 public const std vector
  • 如何从 JVM 分析和监控 gc.log 垃圾收集器日志文件

    我想知道直观分析和监视 java gc log 文件的最佳方法是什么 GCViewer https github com chewiebug GCViewer是迄今为止我发现的最有趣的工具 但我想知道是否有更好的或好的解决方案来监视多个远程
  • Rails 4:为什么字体在生产环境中无法加载?

    我无法在生产中的 Rails 4 应用程序中加载字体 但它在开发中正常工作 资产在部署时在服务器上预编译 我的字体在 app assets fonts 我的应用程序 css font face font family WalkwayBold
  • 从 pydev 中的另一个项目导入

    我已经四处寻找很长一段时间了 但我就是找不到答案 类似的问题涉及第三方库等的一些棘手案例 但我的情况似乎很简单 尽管如此 我还是不明白这是如何工作的 我正在使用 Eclipse 3 5 2 Pydev 2 2 0 在 Ubuntu 11 0
  • 当记录包含 json 或字符串的混合时,如何防止 Postgres 中的“json 类型的无效输入语法”

    我有一个文本列 其中包含 JSON 和计划文本 我想将其转换为 JSON 然后选择一个特定的属性 例如 user data user name jim user name sally some random data string 我试过了
  • Mockito isA() 和任何...()

    有什么区别 verify mock times 1 myMethod Matchers isA String class verify mock times 1 myMethod Matchers anyString 来自 Mockito
  • 在 std::string 中使用自定义分配器来重用已分配的字符缓冲区

    我需要在 std string 对象中使用已分配的 char 缓冲区 带有字符串内容 经过一些研究 我发现这几乎是不可能的 并且 std string 总是有自己的私有数据副本 我能想到的唯一剩下的方法是使用自定义分配器 该分配器将返回已分
  • 提交如何从一个文件的日志中消失?

    因此 我对文件进行了更改 将其推送到我们的主存储库 并在那里看到了它 大卫从那个存储库中取出并做了一些事情 但看不到我的改变 由于 David 是典型的 Microsoft 受害者 因此我要求他将其拥有的内容推回存储库 然后我会在那里查看
  • iOS 应用程序无法在 Testflight Ad Hoc Distribution 上启动

    我正在开发一个应用程序 当我通过 Xcode 运行它时 它可以在我的手机上完美运行 但是当我通过 TestFlight 分发测试版时 没有用户可以运行它 NOTE 他们可以毫无问题地在手机上安装该应用程序 该应用程序在启动前关闭 并且 Te
  • android.permission.BATTERY_STATS 使用情况

    我正在探索有关电池的 Android API 选项 什么可能性授予许可android permission BATTERY STATS 如果我可以在不声明此类权限的情况下读取电池电量的 android intent action BATTE
  • Flash 和 Google Drive SDK 无法相互通信

    我需要创建一个连接到 Google Drive SDK 的 Flash Web 应用程序来检索公共二进制文件 但我面临跨域安全问题 我可以使用 javascript 来做到这一点跨站点 xmlhttprequest与 CORS 在 AS3
  • 序列化向量

    我正在尝试为我正在开发的游戏实现加载和保存 我要保存的是 A char 二维数组 矩阵 An ArrayList
  • Flex网格:左右交替

    使用弹性盒 我想将一系列 div 垂直放置在包含 div 的下方 有些左 有些右 其中每个 div L 和 R 是容器 div 宽度的 70 L div 必须固定到容器的左侧 R div 必须固定到容器的右侧 L R L L R R R L
  • Geopandas PostGIS 连接

    我最近开始在 python 中使用 Geopandas 进行一些空间工作 并且对此非常满意 我目前正在尝试阅读 PostGIS 功能 但不太了解如何参数化数据库连接 而且似乎不清楚在文档中 GeoDataFrame from postgis
  • 为什么将 Visual Studio 解决方案添加到 TFS 时空文件夹会消失?

    我有这个 Visual Studio 解决方案 其中包含一个项目 该项目具有由多个空文件夹组成的模板文件夹树 当我使用 源代码管理 gt 将解决方案添加到源代码管理 菜单项将此解决方案添加到 Team Foundation Server T
  • 隐藏 QLPreviewController 的右键?

    我在应用程序中对 QLPreviewController 进行子类化并使用以下代码 QLPreviewControllerSubClass preview QLPreviewControllerSubClass alloc init sel
  • 您可以在创建现有的 mysql 触发器后对其进行修改吗?

    In mysql我可以创建一个触发器 然后显示有关它的信息 如下所示 mysql gt show triggers like fooTrigger 该命令提供的输出看起来非常像 select 语句 其中一行显示匹配的触发器 是否可以更新它向
  • 通过 Raven Studio 中的 RQL 将额外的列/字段添加到 RavenDB 集合

    我试图通过向每个实体添加额外的字段来更新整个集合 这doesn t做这件事 from things as t update put id t NewField 有人可以帮忙解决一下语法吗 Thanks Just do from things
  • 如何在VIM中映射CAPS LOCK键?

    我在Windows下使用VIM 并希望将 CAPSLOCK 映射到 Ctrl 有办法做到这一点吗 顺便说一句 我在网上看到了大量如何使用注册表 hack 交换 CAPS 和 Esc 的示例 但它们都没有使用 VIM 映射命令 而是使用外部工
  • Slim 框架 - 无法用点解释路由

    问题陈述 我目前正在开发内部 RESTful API 并使用我们的主域名作为环境标识符 然而 我注意到 Slim 根本不喜欢其中有点的路线 示例案例 我有一个使用 PHP 内置 Web 服务器运行的本地 Web 服务器 并且我调用了php