如何将 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?