当前位置: 首页 > 知识库问答 >
问题:

避免使用laravel的公用文件夹,直接在web服务器中打开根目录

冯飞鹏
2023-03-14

我正在网上浏览所有可能的样本来解决这个问题。这仍然是一个头痛。

我只是想避免www.mylaravelsite.com/public/中的公共,并使其像根目录的www.mylaravelsite.com

现在我不想回避安全问题,所以我学习了。htaccess将是最好的方式。

朋友们,有什么解决办法吗?

共有3个答案

邹浩
2023-03-14

听起来您缺少的信息是:

这也称为“web根”。Apache特别将其称为DocumentRoot—单击该链接可获得官方解释。

基本上,它所做的是设置服务器从哪个目录提取文件。在Laravel中,文档根目录应该是public文件夹。

将DocumentRoot设置为public意味着转到http://mylaravelsite.com浏览器中的实际上将“指向”您想要的公用文件夹。

在公园里。htaccess文件(实际上,更可能是在虚拟主机配置中),您可以为站点设置DocumentRoot

DocumentRoot /path/to/laravel-app/public

你如何设置它取决于你的主机。每个主机都有不同的方式来设置网站,因此我们无法专门为您回答-您应该咨询您的网络主机技术支持。关键的一点是,public目录应该是web根目录,而其他所有内容都应该“在web根目录后面”。

公平警告tho:一些主机提供商没有给你足够的访问权限来完成这项任务。

苏富
2023-03-14

在根文件夹中创建. htaccess并写入以下行

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

对于正式服建议您将您的域名直接指向公共文件夹

宋翔
2023-03-14

假设您的服务器中有此文件夹结构

.cpanel/
public_html/
public_ftp/
..

laravel文件夹结构是

app/
bootstrap/
public/
vendor/
composer.json
artisan
..

您可以创建一个文件夹名称mylaravelsite在您的服务器内联与public_htmlpublic_ftp文件夹,并复制到它的整个laravel应用程序除了公共文件夹,因为您将粘贴所有的内容在public_html,所以你现在有:

.cpanel/
public_html/
public_html/packages
public_html/vendor
public_html/index.php
public_html/.htaccess
...
public_ftp/
mylaravelsite/
mylaravelsite/app
mylaravelsite/bootstrap
...

在您的public\u html/索引上。php更改以下行:

require __DIR__.'/../bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/start.php';

require __DIR__.'/../mylaravelsite/bootstrap/autoload.php';

$app = require_once __DIR__.'/../mylaravelsite/bootstrap/start.php';

另外,不要忘记更改/mylaravelsite/bootstrap/path。php公共路径,您可以使用它。

'public' => __DIR__.'/../public',

'public' => __DIR__.'/../../public_html',

您的站点应该正在运行。

 类似资料:
  • 问题内容: 我正在浏览互联网上所有可能的示例以解决此问题。仍然令人头疼。 我只想避免进入’public’ 并使其像根目录一样。 现在我不想避免安全问题,因此我了解到这是最好的方法。 有什么解决办法的朋友吗? 并提前感谢您的互动! 问题答案: 假设您的服务器中具有此文件夹结构 laravel文件夹结构是 您可以在服务器上与和内联的文件夹中创建一个名为mylaravelsite的文件夹,然后将除公共文

  • 我使用Laravel框架。如您所知,其目录如下所示: 打开我的网站主页()我需要打开目录的文件夹。换句话说,要查看我网站的第一页,请访问以下URL: 无论如何,只有我的域名()不是我的根目录。如何将文件夹设为根目录? 现在我找到了一个变通办法。我可以在根上创建一个,并将代码重定向到文件夹。因此,当用户输入时,它将被自动重定向到。但这仍然很丑陋。我不喜欢在URL中看到。有什么建议吗?

  • (资产)文件夹包含CSS和JS文件 当css和js文件在另一个路径中被切断时,如何使wamp服务器知道新的路径? 我需要帮助

  • 我有一个像这样的文件夹 应用程序 供应商 引导程序 公开的 文件夹 img 当我从url访问时http://example.com/img/img.png它工作,但当我喜欢访问http://example.com/img/我得到禁止403,我需要的是重定向或显示该页面没有找到我的。htaccess看起来像这样。 选项-多视图选项-索引重写引擎打开

  • 我使用Homestead,在下有一个文件夹,还有一个名为。如果我试图在正确的URL下打开它:我得到一个。这种情况只发生在这个特定的图像和这个特定的名称上。如果我改变了它的任何一个字符,它会突然再次工作。 这个问题与路由无关,因为我删除了所有的路由,但它仍然在发生。我运行没有成功。文件和文件夹权限是确定的(这不可能是无论如何的问题,因为重命名不会解决它)。 是否有某种我不知道的资产命名规则? 第82

  • 我正在尝试从outlook邮箱获取公用文件夹电子邮件。现在,我可以从我的根文件夹的文件夹中获取邮件。我使用以下代码进行相同的操作: 当我将替换为时,我会得到错误“没有可用的公用文件夹服务器”。我还引用了@mimi Gentz解决方案,但仍然得到错误。 我的代码漏了什么吗?请帮帮忙。