【问题标题】:Raspberry PI - Slim API not working with RoutesRaspberry PI - Slim API 不适用于路由
【发布时间】:2016-01-10 22:33:28
【问题描述】:

我正在尝试使用 Slim 框架在 Raspberry PI 模型 B 上构建一些 Rest api。问题是当我运行 / 路由时一切正常,当我尝试运行 /test 路由时,我有一个 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 瘦应用程序:

<?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

【问题讨论】:

    标签: php .htaccess apache2 slim raspberry-pi2


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-01-05
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      相关资源
      最近更新 更多