Raspberry PI - Slim API 不支持路由
Raspberry PI - Slim API not working with Routes
我正在尝试使用 Slim Framework 在 Raspberry PI 模型 B 上构建一些 Rest api。问题是,当我 运行 / 路由一切正常时,当我尝试 运行 / 测试路由时,我有一个 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
您的 Apache 配置(签入 /etc/apache2/)需要 AllowOverride FileInfo
或 AllowOverride All
作为文件所在的目录( /var/www/html 或 /var/www/html/api)。否则 apache 将简单地忽略 .htaccess 并尝试查找名为 test
的文件夹或文件。见 documentation.
我正在尝试使用 Slim Framework 在 Raspberry PI 模型 B 上构建一些 Rest api。问题是,当我 运行 / 路由一切正常时,当我尝试 运行 / 测试路由时,我有一个 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>
然后用
重启apache2sudo service apache2 restart
我也需要这条线
sudo a2enmod rewrite
感谢@T0xicCode
您的 Apache 配置(签入 /etc/apache2/)需要 AllowOverride FileInfo
或 AllowOverride All
作为文件所在的目录( /var/www/html 或 /var/www/html/api)。否则 apache 将简单地忽略 .htaccess 并尝试查找名为 test
的文件夹或文件。见 documentation.