2012-09-28 75 views
3

我想知道是否有人可以阐明为什么laravel应用程序的index.php文件存在于公共目录中。如果我将它移动到根目录中,那有什么风险?Laravel公用文件夹

回答

5

laravels公共文件夹中的文件和文件夹都是可以通过网络访问的。为了安全起见,laravel框架中的所有其他文件和文件夹都不能通过网页访问。

将index.php移动到laravels根目录将打破框架并违背最佳实践。

按照these说明,以确保您的服务器配置指向公共目录的DocumentRoot

+0

如果我改变路径文件,一切工作正常,所以我很担心打破了框架。我也很熟悉设置虚拟主机或符号链接。我的问题,我认为更多的是关于最佳实践的部分;为什么最好的做法是将主索引放在公用文件夹中?移动它的后果是什么?如果情况非常糟糕,为什么大多数其他框架将其置于根源上? – GPicazo

+0

将你的index.php(及随后的docroot)移动到'public'目录的上方意味着你的应用程序的所有代码都可以被任何人公开访问。 是的,其他一些框架把它放在根中,但也有折衷。如果没有定义BASEPATH,CodeIgniter会将一行添加到所有杀死脚本的文件的顶部。 Laravel通过保持Web服务器无法访问的所有内容来避免这些黑客行为。 –

+0

我认为这是更常见的做法,而不是最好的做法。我从来没有尝试过自己动手。尽管如此,为了确保用户不'假设'有这样一个文件,我只是重命名它。即使有重写规则。为了分离结果(注意:不担心),我将它移入系统根目录,让Apache从那里调用它。然后,将所有静态资源留在公共根目录中。对我更有意义。 –

相关问题