找不到对象!在此服务器上找不到请求的 URL。如果您手动输入网址,请检查您的拼写并重试

Posted

技术标签:

【中文标题】找不到对象!在此服务器上找不到请求的 URL。如果您手动输入网址,请检查您的拼写并重试【英文标题】:Object not found! The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again 【发布时间】:2020-04-29 11:24:39 【问题描述】:

我正在学习使用 Apache、Xampp、slim 和 php 创建 http 服务器的教程。 我习惯了 javascript 和 Express,所以我有点迷路了。

以下是整理文件夹的方法:

用户.php

<?php
$app->get('/app/test', function (Request $request) 
 echo "hello world";
);
?>

app.php

<?php
require __DIR__ . '/../vendor/autoload.php';
use Slim\Factory\AppFactory;
$app = AppFactory::create();
include __DIR__ . '/../app/user.php';
?>

.htaccess

RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^ index.php [QSA,L]

index.php

<?php
require __DIR__ . '/../bootstrap/app.php';
$app->run();
?>

为了测试这个,我输入

http://localhost/friendster/app/test

这就是我得到的: 注意: Apache 服务器正常工作: 知道我做错了什么吗?

【问题讨论】:

您正在尝试获取friendster/app/test,但路由定义为/app/test @yivi localhost/app/test 也不起作用 【参考方案1】:

在您的项目根目录中创建第二个.htaccess 文件并复制/粘贴此内容:

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

第二个.htaccess 文件对于在子目录和开发环境中运行 Slim 应用非常重要。

$app = AppFactory::create();之后添加这一行:

$app->setBasePath('/friendster');

Slim 4 - Apache URL rewriting

【讨论】:

请为您的答案添加一些解释 - 为什么第二个 htaccess 可以解决问题?【参考方案2】:

我已经解决了这个问题,只需从头开始,使用 Slim Framework 4 Skeleton Application 并按照 official tutorial 创建第一个应用程序。

确保使用github repo中提到的命令安装应用程序,NOT MANUALLY,否则你会遇到我遇到的问题here:

所以这样做:

composer create-project slim/slim-skeleton [my-app-name]

然后:

cd [my-app-name] composer start

你会是这样的:

结果是这样的:

【讨论】:

以上是关于找不到对象!在此服务器上找不到请求的 URL。如果您手动输入网址,请检查您的拼写并重试的主要内容,如果未能解决你的问题,请参考以下文章

在此服务器上找不到请求的 URL。

Angular - 在此服务器上找不到请求的 URL /home

Laravel 请求的 URL / 在此服务器上找不到

在此服务器 django 上找不到请求的 URL

在XAMPP中的服务器上找不到请求的URL

MKTileOverlay - “在此服务器上找不到请求的 URL。”