【问题标题】:Remove /public from URL in a subfolder从子文件夹中的 URL 中删除 /public
【发布时间】:2016-09-27 10:35:31
【问题描述】:

我正在构建一个 Laravel 应用程序,它将位于当前项目的子文件夹中。我正在尝试删除 URL 中的 /public,以便用户可以在此 URL 上查看项目:

www.domain.com/project

而不是默认...

www.domain.com/project/public

我在 StackOverflow 和 Laracasts 论坛上进行了一些挖掘,并在我的项目根目录下的 .htaccess 文件中进行了尝试:

<IfModule mod_rewrite.c>
   RewriteEngine On 
   RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

但是,当我这样做时,我的路线不再起作用。甚至/ 的默认路由也停止工作了。

很多答案都提到最好的方法是更改​​ Apache 配置中的根目录,以便它从 /public 而不是目录的根目录提供文件。

问题是这个在主项目的子文件夹中,我怎样才能使它只有这个项目受到影响? www.domain.com 的网站运行良好,并且 URL 中没有 /public。

【问题讨论】:

    标签: apache .htaccess laravel laravel-5


    【解决方案1】:

    有几个选项。我不认为你想尝试在 htaccess 级别通过 mod 重写(或类似的东西)修复这个问题

    一种选择是创建另一个虚拟主机,它在任意端口(例如,8080)上进行侦听。然后将此虚拟主机的文档根目录设置为 .../public/

    另一种选择,您可以在 /etc/hosts 或 Windows hosts 文件中欺骗 dns,并设置 dev.domain.com 虚拟主机。

    【讨论】:

      【解决方案2】:

      •转到主项目/公共>>

      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';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 2023-01-03
        • 2014-08-23
        • 2016-07-30
        • 1970-01-01
        相关资源
        最近更新 更多