找不到PHP Slim API 404

时间:2015-04-29 13:24:43

标签: php .htaccess slim

我尝试使用php和php slim创建API。

我的文件夹结构:

API:

  • app - > app.js
  • libs - >纤细
  • v1 - > .htaccess和index.php

htaccess的

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]

的index.php

require '.././libs/Slim/Slim.php';
\Slim\Slim::registerAutoloader();

$app = new \Slim\Slim();
$app = \Slim\Slim::getInstance();

$app->get('/orderoverview/:customerID', function ($customerID) {
        echo "Hello " . $customerID;

});
$app->run();

这应该很简单但每次我去http://localhost/api/v1/orderoverview/2我都会找到404 Page Not Found。

但是当我去http://localhost/api/v1/index.php/orderoverview/2时,我确实得到了我想要的结果!

任何评论或解决方案?

3 个答案:

答案 0 :(得分:3)

您需要在htaccess中添加RewriteBase。我注意到你没有分组,所以我假设你把它放在/ api / v1的子目录中

RewriteBase /localsites/serf/weap/api/v1

答案 1 :(得分:0)

您必须在根目录下创建.htaccess文件并放在代码下面。

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /api/v1/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]

答案 2 :(得分:0)

我为你创建了这个,只需将.httpaccess文件更改为 -

DirectoryIndex /v1/index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]

这里v1是子文件夹,index.php是你的函数所在。 希望它有所帮助!