我正试图用Slim Framework在Raspberry PI模型B上构建一些Rest api。问题是,当我运行/route时一切正常,当我尝试运行/test-route时,我有一个404。
我认为.htaccess和rewrite规则有一些问题,这是我的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/)需要为文件所在的目录(/var/www/html或/var/www/html/api的AllowOverride FileInfo
或AllowOverride All
)。否则,apache将忽略.htaccess并尝试查找名为test
的文件夹或文件。请参阅文档。