如果我们将从路径中删除 public url 那么为什么 laravel 社区将其添加到 laravel
If we will remove public url from path then why laravel community added it in laravel
通常当我们从 laravel 网站下载新的 laravel 安装程序以执行它时,我们通常会找到 public floder。
但稍后我们将从 url 中删除 public。比为什么他们添加了它?
最好的答案(我认为)是组织和安全。
当所有 public WWW 访问文件都保存在 public
目录中时,您可以将虚拟主机直接指向该文件夹。这意味着应用程序级文件(.env
、config
、app
等)public只能通过网络访问浏览器。这反过来意味着没有人可以使用 Web 浏览器意外或故意浏览您的源代码或配置。
我猜你理解错了。
Laravel public
文件夹提供您网站的内容。整个框架和供应商目录都在这条路径后面。因此 public 用户无法访问所有这些文件夹,这是框架的主要安全性。
这意味着在服务器上您不会将整个框架上传到 public_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>
因此您可以像 homestead.app
这样在浏览器中访问该项目以获取更多详细信息,请查看此 link。
希望现在晴了。
通常当我们从 laravel 网站下载新的 laravel 安装程序以执行它时,我们通常会找到 public floder。 但稍后我们将从 url 中删除 public。比为什么他们添加了它?
最好的答案(我认为)是组织和安全。
当所有 public WWW 访问文件都保存在 public
目录中时,您可以将虚拟主机直接指向该文件夹。这意味着应用程序级文件(.env
、config
、app
等)public只能通过网络访问浏览器。这反过来意味着没有人可以使用 Web 浏览器意外或故意浏览您的源代码或配置。
我猜你理解错了。
Laravel public
文件夹提供您网站的内容。整个框架和供应商目录都在这条路径后面。因此 public 用户无法访问所有这些文件夹,这是框架的主要安全性。
这意味着在服务器上您不会将整个框架上传到 public_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>
因此您可以像 homestead.app
这样在浏览器中访问该项目以获取更多详细信息,请查看此 link。
希望现在晴了。