【问题标题】:Laravel remove public from urlLaravel 从 url 中删除 public
【发布时间】:2016-07-30 13:25:30
【问题描述】:

这是我的 Laravel 5.2 文件夹结构

-laravel
--app
--bootstrap
--config
...

在 Laravel 的根目录 laravel 文件夹下,我添加了一个 .htaccess 文件,代码如下:

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

现在当我在浏览器中打开项目时出现错误:

抱歉,找不到您要查找的页面。 “RouteCollection.php 第 161 行中的 NotFoundHttpException:”

我正在使用 XAMPP。为什么我收到此错误?如何使用此方法从 URL 中删除 public?

【问题讨论】:

    标签: php .htaccess laravel laravel-5 laravel-5.2


    【解决方案1】:

    您需要将您的网络服务器指向public 目录而不是项目根目录。使用原始的 .htaccess 和这些 Apache 设置:

    DocumentRoot "C:/xampp/htdocs/public"
    <Directory "C:/xampp/htdocs/public">
    

    重新启动 Apache 以使其工作。

    【讨论】:

      【解决方案2】:

      最好的方法是在 xampp 中创建一个虚拟主机并将其 DocumentRoot 设置为 laravel 公用文件夹。 这是一个关于如何在 xampp 中创建虚拟主机的好教程

      https://delanomaloney.com/2013/07/10/how-to-set-up-virtual-hosts-using-xampp/

      【讨论】:

        【解决方案3】:

        根据需要创建一个文件夹和名称,移动该文件夹内除公共以外的所有文件,将公共文件夹的内容移动到根目录。在您必须编辑 index.php 并通过您的新闻文件夹名称更改 [newFolder] 之后

        require __DIR__.'/[newFolder]/bootstrap/autoload.php';
        $app = require_once __DIR__.'/[newFolder]/bootstrap/app.php';
        

        【讨论】:

        • 我跟着这个,但没有成功。是否还有其他可能阻止此方法的内容。我已经在另一台机器上对此进行了测试,但它在我的机器上不起作用。我已经尝试了几次,但没有成功。我无法理解发生了什么。
        • 使用该方法您可以删除公共 URI,因此只需将您的 .htaccess 文件设为默认文件并尝试我所说的 :) @Mukesh
        【解决方案4】:

        •转到主项目/公共>>

        a.  .htacess
        b.  favicon.ico
        c.  index.php
        d.  robots.txt
        e.  web.config
        

        1.从公用文件夹中剪切这5个文件,然后粘贴到主项目文件夹,即公用文件夹之外的... mainproject/files

        2.粘贴后下一步,打开index.php,修改

        •require __DIR__.'/…/bootstrap/autoload.php';  to
        •require __DIR__.'/bootstrap/autoload.php';
        
            modify
        
            $app = require_once DIR.'/../bootstrap/app.php'; to
        
            $app = require_once DIR.'/bootstrap/app.php';
        

        【讨论】:

          【解决方案5】:

          更改您的 httpd.conf 文件

          DocumentRoot "C:/xampp/htdocs"
          <Directory "C:/xampp/htdocs">
          

          DocumentRoot "C:/xampp/htdocs/{projectname}/public"
          <Directory "C:/xampp/htdocs/{projectname}/public">
          

          重启阿帕奇。然后您现在可以在 url localhost/ 中访问您的项目

          【讨论】:

          • 在 xammp 中使用这个
          猜你喜欢
          • 2015-01-14
          • 2020-06-07
          • 1970-01-01
          • 1970-01-01
          • 2015-11-17
          • 2016-03-06
          • 2017-09-28
          • 2023-03-23
          • 2021-05-11
          相关资源
          最近更新 更多