PHP 苗条 API 404 未找到

PHP Slim API 404 not found

我正在尝试使用 php 和 php slim 创建一个 API。

我的文件夹结构:

API:

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 页面未找到。

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

有任何意见或解决方案吗?

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

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

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

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

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

的子目录中
RewriteBase /localsites/serf/weap/api/v1

我为您创建了这个,只需将您的 .htaccess 文件更改为 -

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

此处 v1 是子文件夹,index.php 是您的函数所在的位置。 希望对您有所帮助!