Php Laravel公用文件夹

Php Laravel公用文件夹,php,laravel,Php,Laravel,我想知道是否有人可以解释为什么laravel应用程序的index.php文件位于公共目录中。如果我将其移动到根目录中,会有什么风险?laravels公用文件夹中的文件和文件夹是可以通过web访问的。为了安全起见,laravel框架中的所有其他文件和文件夹都不应通过web访问 将index.php移动到laravels根目录将破坏框架并违背最佳实践 按照说明确保您的服务器配置指向DocumentRoot的公共目录如果我更改路径文件,一切正常,因此我担心会破坏框架。我还熟悉设置虚拟主机或符号链接。我

我想知道是否有人可以解释为什么laravel应用程序的index.php文件位于公共目录中。如果我将其移动到根目录中,会有什么风险?

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

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


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

如果我更改路径文件,一切正常,因此我担心会破坏框架。我还熟悉设置虚拟主机或符号链接。我的问题,我认为更多的是关于最佳实践部分;为什么将主索引放在公用文件夹中是最佳做法?移动它的后果是什么?如果情况如此糟糕,为什么大多数其他框架都将其放在根目录下?将index.php(以及随后的docroot)移动到
public
目录上方意味着所有应用程序的代码都可以被任何人公开访问。是的,其他一些框架将它放在根目录中,但也有一些折衷。例如,如果未定义
BASEPATH
,CodeIgniter会在所有文件的顶部添加一行,从而终止脚本。Laravel通过使web服务器无法访问所有内容来避免这些黑客攻击。我认为这是比最佳做法更常见的做法。我从来没有试过自己搬它。尽管如此,为了确保用户不会“假设”有这样一个文件,我只是将其重命名。即使有重写规则。为了分离结果(注意:不考虑),我将把它移到系统根目录中,并让Apache从那里调用它。然后,将所有静态资源保留在公共根目录中。对我来说更有意义。@cborgia指令链接已经不存在了!