若我们将从路径中删除公共url,那个么为什么laravel社区将其添加到laravel中呢

若我们将从路径中删除公共url,那个么为什么laravel社区将其添加到laravel中呢,laravel,laravel-5,laravel-routing,Laravel,Laravel 5,Laravel Routing,通常,当我们从laravel网站下载新的laravel设置以执行它时,我们通常会找到public floder。 但稍后我们将从url中删除public。而不是他们为什么要加进去 最好的答案(我想)是组织和安全 当所有公共WWW访问文件都保存在public目录中时,您可以将虚拟主机直接指向该文件夹。这意味着web浏览器不能公开访问应用程序级文件(.env、config、app等)。这反过来意味着没有人可以使用web浏览器意外地或故意地浏览您的源代码或配置。我猜您弄错了 Laravelpublic

通常,当我们从laravel网站下载新的laravel设置以执行它时,我们通常会找到public floder。 但稍后我们将从url中删除public。而不是他们为什么要加进去

最好的答案(我想)是组织和安全


当所有公共WWW访问文件都保存在
public
目录中时,您可以将虚拟主机直接指向该文件夹。这意味着web浏览器不能公开访问应用程序级文件(
.env
config
app
等)。这反过来意味着没有人可以使用web浏览器意外地或故意地浏览您的源代码或配置。

我猜您弄错了

Laravel
public
文件夹为您的网站内容提供服务。整个框架和供应商目录位于此路径后面。因此,公共用户无法访问所有这些文件夹,这是框架的主要安全性

这意味着在服务器上,如果未设置正确的符号链接,您不会将整个框架上载到
public\u html
文件夹,也不会将域指向laravel的
public
文件夹

这一点可以通过在服务器中创建符号链接来实现。例如,您可以在Linux/Windows中编辑主机文件并设置项目域。类似于
homested.app
。 然后在apache配置中,只需将此项目域设置为其物理路径。 如下图所示

<VirtualHost *:80>
ServerName homestead.app
DocumentRoot /home/User/Development/homestead/public
<Directory />
Require all granted
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
</Directory>
</VirtualHost>

ServerName homestead.app
文档根/家/用户/开发/宅地/公共
要求所有授权
选项索引如下SYMLINKS包括ExecCGI
允许超越所有
因此,您可以在浏览器中访问该项目,如
homestead.app
,有关更多详细信息,请查看此项

希望现在天气转晴