PHP 5.4内置服务器,修复文件未找到错误

我使用 PHP 5.4 RC5,并通过终端启动服务器

PHP -S localhost:8000

目前使用Aura.Router,并在根目录下我有index.PHP文件代码

<?PHP
$map = require '/Aura.Router/scripts/instance.PHP';

$map->add('home','/');

$map->add(null,'/{:controller}/{:action}/{:id}');

$map->add('read','/blog/read/{:id}{:format}',[
    'params' => [
        'id' => '(\d+)','format' => '(\.json|\.html)?',],'values' => [
        'controller' => 'blog','action' => 'read','format' => '.html',]
]);

$path = parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH);

$route = $map->match($path,$_SERVER);
if (! $route) {
    // no route object was returned
    echo "No application route was found for that URI path.";
    exit;
}
echo " Controller : " . $route->values['controller'];
echo " Action : " . $route->values['action'];
echo " Format : " . $route->values['format'];

对http:// localhost:8000 / blog / read / 1的请求按预期工作.

但是当一个点json或点html像http:// localhost:8000 / blog / read / 1.json,http:// localhost:8000 / blog / read / 1.html请求来时,PHP抛出

Not Found
The requested resource /blog/read/1.json was not found on this server.

当我使用内置的PHP服务器运行服务器时,我在哪里可以修复不抛出html和json文件找不到错误

或者我想去安装apache并启用mod重写和东西?

解决方法

您正在尝试使用PHP内置Web服务器的路由器脚本而不指定它:

PHP -S localhost:8000

而是添加您的路由器脚本:

PHP -S localhost:8000 router.PHP

如果请求匹配,路由器脚本应该处理请求,或者它应该返回FALSE,以防它需要应用标准路由.比较Built-in web server­Docs.

我不知道Aura.Router是否支持开箱即用的内置Web服务器,或者是否要求您为其编写适配器.就像您需要为该路由器库配置Web服务器一样,您也需要配置内置Web服务器.这是上面示例中的router.PHP脚本.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...