如何防止 Laravel 应用程序文件夹被搜索引擎索引

Posted

技术标签:

【中文标题】如何防止 Laravel 应用程序文件夹被搜索引擎索引【英文标题】:How to prevent Laravel application folders from being indexed by search engines 【发布时间】:2021-11-14 18:05:03 【问题描述】:

我试图将我网站的域输入到谷歌搜索引擎中,但震惊地发现不应该公开的应用程序文件夹已被编入索引。文件夹和文件就像 composer.json,一个供应商目录,存储目录,资源目录等等。

我如何设置:

应用在public_html目录下,index.php是入口,在根目录下(public_html) 其他 Laravel 应用程序目录保持原样(默认 Laravel 7 目录结构)

【问题讨论】:

在文档中有描述 apache / nginx 的简约配置的部署部分。您对 devops 的要求更多,而不是 laravel 本身,但您甚至没有提到 Web 服务器是什么 “应用程序位于 public_html 文件夹中”。那么它不应该在那个文件夹中。你的域应该指向 Laravel 公共文件夹。应用程序文件不应位于公共文件夹中。 @BartłomiejSobieszek Web 服务器是 apache 这能回答你的问题吗? Stop Google from indexing @NicoHaase 最好先理解为什么它们会被索引,因为如果机器人可以找到它们,那么每个人都可以 【参考方案1】:

应用在public_html目录,index.php为入口,在根目录(public_html) 其他Laravel应用目录保持原样(Laravel 7默认目录结构)

在默认的 Laravel 安装中,项目目录中没有index.php,只有一个server.php。如果您在此处进行了任何更改,请还原它们,因为这会导致严重的安全问题。

应该公开访问的唯一 Laravel 目录是 public

你使用的是Apache,这意味着DocumentRoot应该设置为/path/to/your/project/public(其中public是Laravel的public目录)。

这样一来,上面的所有文件和目录(appresources...)都将无法访问。

【讨论】:

好的,也许我应该澄清一下,问题不在于文件可访问。它们无法访问,但已被搜索引擎索引。 如果这些文件不可访问,搜索引擎将无法索引它们 是的,@NicoHaase 是对的,如果这些文件不可访问,搜索引擎就无法索引这些文件。我想我们都同意这些文件不能同时访问和访问,所以你能用你的虚拟主机配置和你的整个项目目录结构更新你的问题吗?会有很大帮助 @iDevsKE 文件可访问始终是一个问题。不仅因为它们被编入索引,还因为它存在安全风险。所以这个答案不仅解决了问题中的问题,还解决了其他问题。【参考方案2】:

您应该将所有项目文件移动到根目录,然后将文件从 public 复制到 public_html,然后在 Laravel 中指向public_html

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

public function register()

    $this->app->bind('path.public', function() 
        return base_path().'/public_http';
    );

你也可以看到:How to change public folder to public_html in laravel 5

【讨论】:

以上是关于如何防止 Laravel 应用程序文件夹被搜索引擎索引的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在laravel中上传相同的文件

laravel中如何写验证码文件,并防止中文乱码.

如何防止laravel 5.2中的浏览器后退按钮

手机电子书的文件夹被隐藏了,在手机里看不到该如何处理

如何防止在“作曲家更新”命令时覆盖文件

如何防止参数在Laravel中的控制器方法中注入