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