【问题标题】:How to remove 'public' from Laravel URL (v5.6) when Laravel is installed in a subdirectory当 Laravel 安装在子目录中时,如何从 Laravel URL (v5.6) 中删除“公共”
【发布时间】:2018-09-02 18:17:14
【问题描述】:

我将 WordPress 用于我的商业网站,将 Laravel 用于项目管理应用程序。

这是我的目录结构。

public_html
    -mainsite (my WordPress site is in this directory)
    -work (Laravel Application is in this directory)

当用户访问我的主域(例如 www.example.com)时,我使用以下 .htaccess 规则将访问者重定向到 www.example.com/mainsite

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/mainsite/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mainsite/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ mainsite/index.php [L] 
</IfModule>

我位于“工作”目录中的项目管理应用程序可通过此 URL 轻松访问

www.example.com/work/public

现在我想允许用户使用这个 URL 访问我的项目管理应用程序 (我想从 URL 中删除 'public')-

www.example.com/work

您能帮我解决这个问题吗?

(当 Laravel 安装在根目录中时,很容易从 URL 中删除“public”,我知道该怎么做)

这不是重复的问题,原因如下—— 我的 Laravel 安装在我的根目录的子目录中,并且我还在为我的基本 URL 使用不同的站点(一个 WordPress 站点)

【问题讨论】:

  • 不,这不是重复的问题。我的 Laravel 安装在我的根目录的子目录中,并且我还在为我的基本 URL 使用不同的站点(一个 WordPress 站点)
  • 你在使用虚拟主机吗?
  • 我正在使用 Bigrock 的 Linux 共享主机计划。
  • 在共享主机中,您需要将公用文件夹中的所有文件带到它外面并编辑 index.php

标签: php laravel .htaccess


【解决方案1】:
  • 将 Laravel 移到 public_html 之外
  • 将 Laravel 公用文件夹的内容移动到 public_html/work
  • 将以下代码放入\App\Providers\AppServiceProvider register()中:

    $this->app->bind('path.public', function() { 返回 base_path('public_html/work'); });

【讨论】:

    猜你喜欢
    • 2016-07-25
    • 2021-08-08
    • 2015-06-09
    • 1970-01-01
    • 2017-02-27
    • 2016-06-09
    • 2019-03-30
    • 2013-03-13
    • 2015-04-06
    相关资源
    最近更新 更多