我尝试使用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 Page Not Found。
但是当我去http://localhost/api/v1/index.php/orderoverview/2时,我确实得到了我想要的结果!
任何评论或解决方案?
答案 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是你的函数所在。 希望它有所帮助!