📅  最后修改于: 2023-12-03 15:06:31.738000             🧑  作者: Mango
Laravel 是一个广泛使用的 PHP 框架,它提供了许多方便的功能来快速构建 Web 应用程序。当您使用 Laravel 创建 Web 应用程序时,您可能已经注意到 URL 中经常包含公共或索引文件名,例如 index.php
或 public
目录。
这些文件名可能会让您的 URL 看起来非常混乱,并且可能会有安全隐患。更好的解决方案是完全删除它们,使您的 URL 更加干净和可读。
在本文中,我们将介绍如何从 Laravel 中的 URL 中删除公共或索引文件。我们将使用 Apache Web 服务器作为示例,但是您也可以在其他 Web 服务器上执行类似的操作。
要从 Laravel 中的 URL 中删除公共或索引文件,您需要使用 mod_rewrite 模块。 mod_rewrite 是一个强大的 Apache 模块,它允许您创建 URL 重写规则并将其中的部分重定向到其他位置。
要启用 mod_rewrite 模块,请运行以下命令:
sudo a2enmod rewrite
此命令将启用 mod_rewrite 模块并将其添加到 Apache 的配置文件中。
接下来,我们需要配置 .htaccess 文件以删除 Laravel URL 中的公共或索引文件。 .htaccess 文件是一个 Apache 配置文件,它允许您为特定目录中的文件定义自定义规则。
在 Laravel 的根目录中创建一个名为 .htaccess
的新文件,并在其中添加以下代码:
RewriteEngine On
# Remove public from URL
RewriteRule ^(.*)$ public/$1 [L]
这些规则将对 URL 执行以下操作:
RewriteEngine On
指令启用 mod_rewrite 模块。RewriteRule ^(.*)$ public/$1 [L]
指令将 URL 重写为 /public/
目录下的路径。也就是说,如果 URL 为 example.com/foo/bar
,则它将被重写为 example.com/public/foo/bar
。保存文件并将其上传到 Laravel 根目录中。
现在,您已经完成了重写规则的设置,可以测试您的 URL。尝试访问您的 Laravel 网站,您应该会发现公共或索引文件不再出现在 URL 中。
例如,如果您的 Laravel 网站位于 example.com
,则您的 URL 可能从 example.com/index.php/foo/bar
或 example.com/public/foo/bar
变为 example.com/foo/bar
。这是一个很好的改进!
在本教程中,我们介绍了如何从 Laravel 中的 URL 中删除公共或索引文件。我们使用 mod_rewrite 模块和 .htaccess 文件来实现这一目标。记住,这不仅会使您的 URL 更加干净和可读,而且还会提高您的安全性。