使用htaccess从URL中删除公用文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用htaccess从URL中删除公用文件夹相关的知识,希望对你有一定的参考价值。

我被URL中的公共文件夹窃听。我搜索互联网删除它,并找到以下方法。

方法I:将公共文件夹以外的所有文件和文件夹移动到根目录中新创建的文件夹,然后将所有文件从公用文件夹复制到根文件夹。

方式二:将.htaccess文件从公用文件夹复制到根文件夹,并将根文件夹中的server.php文件重命名为index.php

方法III:在根文件夹中创建.htaccess文件并粘贴以下代码。

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteRule ^(.*) public/$1 [L]


</IfModule>

问题是方式我和方式II工作正常但不被认为是安全的,因为它们暴露.env目录和其他目录。许多开发人员都说将根目录更改为公共文件夹(方式III)是正确的方法,但是当我这样做时,我会得到错误的页面。

如何解决?从URL中删除公用文件夹的更好方法是哪种?

答案

我认为最好的方法是将文档根目录设置为公用文件夹。

在您的托管上,添加AddOn域并将路径指定为:

路径:domain_root_folder / public /

您的域名将传播为www.example.com而不是www.example.com/public/

另一答案

第一种更安全的方式:

  1. 将Laravel项目从var/www/html移至var/laravel
  2. 将/ public的内容复制到/ var / www
  3. 编辑index.php指向laravel新位置(/vendor/autoload.phpbootstrap/app.php的位置)
  4. 保留之前的apache配置文件('或htaccess')
  5. 你已准备好出发

第二种方式:(你的方式)

以上是关于使用htaccess从URL中删除公用文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 htaccess 从 url 中删除文件夹名称

代码点火器 | .htaccess 从 url 中删除 index.php

如何使用 htaccess 重写从 url 中删除此目录/文件夹?

从 url (codeigniter) 中删除 index.php 时 .htaccess 防止显示文件

如何使用本地主机的 .htaccess 从 URL 中删除目录名称

在 Apache 服务器上获取 .htaccess 文件? (从 url 中删除 html)