slim php 找不到请求的网址

问题描述 投票:0回答:1

我对 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();

提前谢谢你

php .htaccess slim
1个回答
0
投票

您只需要 2 个

.htaccess
文件。

  1. 删除项目根目录下当前的
    .htaccess
  2. 将文件
    src/.htaccess
    移动到项目根目录
© www.soinside.com 2019 - 2024. All rights reserved.