如何将 laravel 项目指向共享主机中 public_html 下的公用文件夹

Posted

技术标签:

【中文标题】如何将 laravel 项目指向共享主机中 public_html 下的公用文件夹【英文标题】:How to point laravel project to a public folder under public_html in shared hosting 【发布时间】:2019-08-01 08:00:04 【问题描述】:
    我的共享主机帐户上有第二个域。 我的 laravel 项目在根目录中 laravel 公用文件夹位于 public_html 下。 public_html/public

注意:我不想要直接在 public_html 下的公共文件,因为我还有其他文件会被覆盖。

我已经将这些更改为我的 index.php 文件中的行。

需要DIR.'/../../MyOtherDomain.com/vendor/autoload.php';

$app = require_once DIR.'/../../MyOtherDomain.com/bootstrap/app.php';

问题是如何让laravel项目使用public_html/public下的index.php文件?

提前致谢。

【问题讨论】:

public_html/public 听起来不是这样,你只需要将public文件夹中的所有文件复制到public_html,你不要在public_html中创建public文件夹,public文件夹是服务器上的public_html,现在只需将 css、js 和字体以及前端文件保存到公共文件夹中,如果您要上传任何图像或文档(我假设上传的文件将被覆盖),请将它们保存到已经在根目录中的存储文件夹中,这个让所有文件保持安全的方式。我的问题是你是否也希望覆盖 css 和其他前端文件? @ViperTecPro,嘿,谢谢你的评论。这就是我不想将所有公共文件直接放在 public_html 文件夹中的原因,因为那里还有很多其他文件。 【参考方案1】:

由于您使用的是共享主机,您需要将域的文档根目录更改为 public_html/public。然后你需要通过编辑以下代码将 index.php 指向你的 Laravel 项目(只能位于 public_html 文件夹之外):

require DIR.'/../../MyOtherDomain.com/vendor/autoload.php';
$app = require_once DIR.'/../../MyOtherDomain.com/bootstrap/app.php';

注意 - MyOtherDomain.com 文件夹应该包含 Laravel 项目。

【讨论】:

【参考方案2】:

在你的根目录下添加.htaccess文件并粘贴以下代码

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

保存并重新加载您的浏览器。

【讨论】:

这是关于在共享主机上部署 Laravel 的最佳答案。这为我节省了很多时间。

以上是关于如何将 laravel 项目指向共享主机中 public_html 下的公用文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 SSH 的情况下在 GoDaddy 共享主机中托管 Laravel 5.2?

在共享主机上托管时如何解决 laravel 的图像上传问题?

sh 将laravel项目部署到共享主机提供商

Laravel 与子域共享主机

如何在共享主机(子域)上部署流明框架

如何将 laravel vue 站点部署到共享主机