【问题标题】:XAMPP server 404 Page Not FoundXAMPP 服务器 404 页面未找到
【发布时间】:2016-05-19 13:36:06
【问题描述】:

我正在尝试重用 php 文件进行 aa 分配。 所以 index.php 中的以下行

require '.././library/Slim/Slim.php';

给我错误信息:

404 页面未找到

找不到您要查找的页面。检查地址栏以确保您的 URL 拼写正确。如果一切都失败了,您可以通过以下链接访问我们的主页。

文件夹库相对于文件 index.php 向后退了一步。 该文件存在,我相信路径是正确的,因为当我将行更改为

require '.././library/Slim/Slim2.php'; //file Slim2.php not present

我收到此错误消息

警告:要求(.././library/Slim/Slim.php2):无法打开流: 在......中没有该文件或目录 /Applications/XAMPP/xamppfiles/htdocs/Julio/Temperature/api/index.php 在第 6 行

致命错误:require():需要打开失败 '.././library/Slim/Slim.php2' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') 在 /Applications/XAMPP/xamppfiles/htdocs/Julio/Temperature/api/index.php 在第 6 行

怎么了? 使用 MAC

【问题讨论】:

  • 一个文件夹后面是'../library/Slim/Slim.php';
  • 你是对的,但它给出了第一个错误消息。我怀疑路径是问题所在。我认为问题应该是别的东西
  • 我们是否可以假设您已经检查了运行 Web 服务器的帐户是否可以访问该文件夹?
  • 无法确定。这是我从另一个项目中获取的文件夹。我已经尝试解锁文件夹中的所有文件(使用 bash),以防万一有锁定的文件。我不知道如何判断正在运行的帐户是否可以访问文件/文件夹
  • 一个测试是允许任何人和任何东西访问它。如果问题消失了,那么找出需要访问的帐户并使安全性更加具体

标签: php xampp localhost http-status-code-404


【解决方案1】:

确保 Apache 不会因为以下 Apache 配置 AllowOverride none 而忽略 .htaccess 文件;检查您的虚拟主机配置并添加/修改AllowOverride All

   <Directory /var/www/site/example.com/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

【讨论】:

    【解决方案2】:

    为了扩展我的评论,您收到的错误消息是 Slim 传递的,因为它无法识别您正在点击的端点。

    例如,如果您使用以下方式创建了新的 Slim App 实例:

    $app = new \Slim\App;
    
    $app->get('/', function ($request, $response, $args) {
        // Logic for the root path here.
    }
    

    上面不是最好的方法,你真的想提取路由到他们自己的文件。

    完整的 Slim 文档可以在这里找到:http://www.slimframework.com/docs/

    编辑:刚刚注意到您使用的是 Slim2,我上面的示例是在 Slim3 中,因此存在一些差异,但是您当前 404 的解决方案应该是相同的。您需要创建一个路由来处理您要查看的页面,并确保您的前端控制器设置正确。

    Edit2: 快速写下下面的内容,看看我是否可以帮助你,现在很忙,所以我没有足够的时间来详细介绍。您还应该知道下面的示例设置是在 Slim3 中完成的,并且是非常基本的。将有更多设置文件夹结构等的最佳方法,但这应该为您提供一个起点。我建议的主要事情是研究一些 Slim 项目和 Slim 文档本身,以很好地掌握微框架的工作原理。

    |- public
      |- index.php
      |- .htaccess
    |- src
      |- ProjectName
        |- Routes
          |- example.php
        |- bootstrap.php
    |- vendor
    

    index.php

    <?php 
    // Pull in our bootstrap file.
    require_once '../src/ProjectName/bootstrap.php';
    $app->run();
    

    .htaccess

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

    bootstrap.php

    <?php 
    require_once '../vendor/autoload.php';
    $app = new \Slim\App();
    require_once 'Routes.php';
    

    example.php

    $app->get('/example/{name}', function ($request, $response, $args) {
        echo 'Hello ' . $args['name'];
    }
    

    【讨论】:

    • 你是对的,错误来自 JSONResponse(404, $response); 行上的 index.php 文件。老实说,我对 Slim 一无所知,我只是想帮助一个朋友完成他的任务。我将仔细查看代码。非常感谢。至少我现在知道错误消息是从哪里来的。
    • @Rossygnol 我已经进行了快速编辑,但时间有点紧。希望对您有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2016-07-15
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多