我对 slim php 相当陌生,我有一个小问题,但我似乎找不到它,错误来自 xampp,这很奇怪。如果我导航到 localhost/db_api/hello 它可以工作,但是当我添加参数时它就不起作用。
composer.json:
{
"require": {
"slim/slim": "4.*",
"slim/psr7": "^1.6",
"nyholm/psr7": "^1.8",
"nyholm/psr7-server": "^1.0",
"guzzlehttp/psr7": "^2",
"laminas/laminas-diactoros": "^3.1"
}
}
.htaccess 公开:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
.htaccess 在 src 中:
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
.htaccess 位于 db_api 根目录中:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ src/ [L]
RewriteRule (^[^/]*$) src/$1 [L]
</IfModule>
index.php
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
$app->setBasePath('/db_api');
$app->get('/hello', function (Request $request, Response $response, $args) {
$response->getBody()->write("Hello world!");
return $response;
});
$app->get('/hello/{name}', function (Request $request, Response $response, $args) {
$name = $args['name'];
$response->getBody()->write("Hello, $name");
return $response;
});
$app->run();
提前谢谢你
您只需要 2 个
.htaccess
文件。
.htaccess
src/.htaccess
移动到项目根目录