我正在尝试使用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>
然后用
重启apache2sudo service apache2 restart
我还需要这一行
sudo a2enmod rewrite
感谢@ T0xicCode
答案 0 :(得分:0)
您的apache配置(签入 / etc / apache2 / )需要AllowOverride FileInfo
或AllowOverride All
作为文件所在的目录( / var / www / html 或 / var / www / html / api )。否则,apache将忽略 .htaccess 并尝试查找名为test
的文件夹或文件。请参阅documentation。