什么是Laravel公共网址的目的?

时间:2015-04-02 18:59:47

标签: url laravel public

当我们设置laravel时,默认网址上会有“public”。

示例:localhost / laravel / public / users

我们知道,我们一直想在我们的网址中删除“公共”,特别是在我们投入生产时。

我在互联网上搜索并看起来像删除“公共”网址需要一些工作来实现,比如将文件移动到其他文件夹,修改.htaccess等...

我的问题是,“公共”网址的目的是什么? 为什么laravel没有提供一个简单的方法来删除“公共”网址.. 我知道Laravel这些天很受欢迎,但为什么让初学者头疼只是删除一部分网址?

让我知道你的想法

2 个答案:

答案 0 :(得分:2)

public目录包含您应该可从外部访问的所有文件。 这样,任何人都无法访问应用程序中的任何其他文件。

如何删除网址中的public?好吧,你不要去除"它一点都没有。相反,您应该将您的域(虚拟主机)直接指向 public(这称为文档根目录)

如果您没有这样做的可能性(通常是因为您在权限非常有限的共享主机上),那么您只需要移动文件或使用.htaccess的解决方法。但是,如果您的托管服务商不允许您设置文档根目录,我会考虑切换到另一个...


顺便说一句:这对Laravel来说并不是真正独一无二的。许多PHP框架(Zend Framework,Symfony等)都有一个专用的文件目录,可以访问 - 与框架核心和应用程序分开。


如果您在正确设置开发环境时遇到问题,请尝试Laravel Homestead。它是一个预配置的Vagrant框,可让您轻松地在本地启动并运行(在您的网址中也没有public!)

答案 1 :(得分:1)

当您将网站的根指向public文件夹时,例如www.mysite.com指向/path/to/laravel/public,有一些优势。

public以外的文件,例如带有密码的.env文件无法访问www.mysite.com/../.env和其他常见的"漏洞利用程序"通过这种简单的方法来防止这种情况。

在其他框架中也是一个非常普遍的实践,不仅仅是Laravel或PHP。

相关问题