当我们设置laravel时,默认网址上会有“public”。
示例:localhost / laravel / public / users
我们知道,我们一直想在我们的网址中删除“公共”,特别是在我们投入生产时。
我在互联网上搜索并看起来像删除“公共”网址需要一些工作来实现,比如将文件移动到其他文件夹,修改.htaccess等...
我的问题是,“公共”网址的目的是什么? 为什么laravel没有提供一个简单的方法来删除“公共”网址.. 我知道Laravel这些天很受欢迎,但为什么让初学者头疼只是删除一部分网址?
让我知道你的想法
答案 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。