Raspberry PI - Slim API无法使用路由

时间:2016-01-10 13:00:57

标签: php .htaccess apache2 slim raspberry-pi2

我正在尝试使用Slim Framework在Raspberry PI模型B上构建一些Rest api。问题是,当我运行/ route所有工作正常时,当我尝试运行/测试路由时我有404。

我认为.htaccess和重写规则存在一些问题,这是我的api结构:

var/www/html/   is the root
--api
 --libs
    --Slim
 --index.php
 --.htaccess

这是我的.htaccess文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [PT,L]

这是我的index.php slim app:

<?php
require '/var/www/html/api/libs/Slim/Slim.php';

\Slim\Slim::registerAutoloader();

$app = new \Slim\Slim();

$app->get('/', function() use($app) {

    echo "Root";

}); 

$app->get('/test', function() use($app) {

   echo "test";

}); 

$app->run();

?>

提前致谢

解决方案:

我在etc / apache2 / apache2.config中编辑了这个文件,改变了这些行

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None    <----- this to All
    Require all granted
</Directory>

然后用

重启apache2
sudo service apache2 restart

我还需要这一行

sudo a2enmod rewrite

感谢@ T0xicCode

1 个答案:

答案 0 :(得分:0)

您的apache配置(签入 / etc / apache2 / )需要AllowOverride FileInfoAllowOverride All作为文件所在的目录( / var / www / html / var / www / html / api )。否则,apache将忽略 .htaccess 并尝试查找名为test的文件夹或文件。请参阅documentation