gum*_*ruh 24 php api frameworks slim
这些天我使用Slim Framework作为开发php web api的最简单的工具.使用这两篇文章:
我从那里开始执行一些步骤.下载Slim Framework,放入正确的目录和文件.调整启动语句,如;
//1. Require Slim
require('Slim/Slim.php');
//2. Instantiate Slim
$app = new Slim();
//3. Define routes
$app->get('/books', function ($id) {
//Show book with id = $id
});
Run Code Online (Sandbox Code Playgroud)
然后,我相应地修改其余部分.
比如我已经完成的清单:
RewriteEngine On RewriteCond%{REQUEST_FILENAME}!-f RewriteRule ^(.*)$ bootstrap.php [QSA,L]
但是,在我发表这个声明之后;
$app->run();
Run Code Online (Sandbox Code Playgroud)
我在我的浏览器上运行它....然后,我在我的Localhost上测试时遇到404错误.解决这个问题的解决方案是什么?
仅供参考,这是我目前正在使用的最简单的PHP文件.(共享链接)
gum*_*ruh 45
问题解决了!
我的apache实际上是正常的,之前提供的.htaccess文件也正常.
线索是我使用的URL.以前我使用了无效的URL,因此它返回了404页面错误.当我尝试通过这个浏览器访问更新的GET URL时,我才意识到这一点;
http://localhost/dev/index.php/getUsers/user1
Run Code Online (Sandbox Code Playgroud)
现在有效!
一旦我发现这些陈述,我就意识到了这一点;
如果Slim找不到URI与HTTP请求URI匹配的路由,则Slim将自动返回404 Not Found响应.
如果Slim发现URI与HTTP请求URI匹配但不是HTTP请求方法的路由,则Slim将自动返回405 Method Not Allowed响应,其中包含Allow:标头,其值列出了所请求资源可接受的HTTP方法.
Tod*_*all 27
我在google搜索"slimframework 404"时发现了这篇文章.这篇文章让我找到了解决问题的方法.
问题
我使用Composer设置了一个带有Slim框架的站点,并使用以下示例代码形式slimframework.com创建一个index.php:
<?php
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用访问该页面http://localhost/hello/bob.我找回了404 Page Not Found页面.
我能够使用访问该页面http://localhost/index.php/hello/bob.
解决方案
我通过查看/vendor/slim/.htaccess(包含w/Composer Slim安装)和Slim框架文档的URL重写部分找到了解决方案.
我将该/vendor/slim/.htaccess文件的副本添加到与index.php文件相同的文件夹中.该文件的内容是:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)
现在我可以使用了http://localhost/hello/bob.
你正确地将index.php包含在你的文件中,但是因为你的mod重写没有正常工作,请检查以下链接:
https://github.com/codeguy/Slim
在"入门"部分中,您可以看到如何配置服务器(如果您使用的是apache/lighttpd/ngynx)
| 归档时间: |
|
| 查看次数: |
52736 次 |
| 最近记录: |