【问题标题】:Hide parent directory /www隐藏父目录/www
【发布时间】:2017-09-21 14:19:10
【问题描述】:

我正在上传我的项目,其中包含包含所有脚本、PHP、CSS 等的文件夹以及 index.html

假设 URL 看起来像这样 www.mydomain.com/project/web/index.html

在父文件夹“项目”中,我的所有文件都是可见的并且可以轻松下载(他们不应该这样做),如果他们只需输入 www.mydomain.com/project/

问题: 有什么方法可以隐藏所有父文件夹和文档,只让我的 /index.html 可访问?

我的服务器不是 Apache,因此我无法设置 .htaccess 文件并构建规则来隐藏/重定向并返回 404 错误页面。

【问题讨论】:

  • 我的服务器不是 Apache,所以我无法设置 .htaccess 文件并构建规则来隐藏/重定向并返回 404 错误页面。
  • 你在运行什么网络服务器
  • @Mykita,尝试通过向我们提供更多信息来扩展您的问题。
  • 我如何知道我正在运行什么服务器?我只知道它不是 Apache。我只是从域提供商 (domeneshop.no) 托管我的页面

标签: html web


【解决方案1】:

您可以在您的项目文件夹或您不希望他们访问的任何其他文件夹中设置index.html

然后在那些index.html 页面中,您可以添加重定向以将用户推送到您的真实主页。你可以把这段代码放在index.html的头部

<meta http-equiv="refresh" content="1; url=www.mydomain.com/project/web/">
        <script type="text/javascript">
            window.location.href = "www.mydomain.com/project/web/"
        </script>

我仍然认为最好的方法是使用.htaccess。但是,如果您别无选择,这将适用于基于文件夹的访问。

这不会阻止人们直接访问文件,例如www.mydomain.com/project/file.txt

【讨论】:

  • 元标签在这里的作用是什么?它如何与 url 一起使用?
  • @bhansa 这个 HTML sn-p 实际上是两个不同的重定向。为什么是两个?只是为了加倍。例如,用户可能会阻止 JavaScript,因此作为后备,元标记将处理重定向。如果您想了解有关该元标记的更多信息,我会查看此资源:developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
  • 感谢您为我解决这个问题,不知道我们可以在 meta 中使用 url。
【解决方案2】:

其实你的服务器是Apache。

这是来自他们的文档:

新旧网络服务器有什么区别? 所有新网络服务器上的操作系统都运行 Debian 8 Jessie,高于 Debian 7 Wheezy。

Apache 从 Apache 2.2 升级到 Apache 2.4。如果您在 webhotel 上运行自己的 .htaccess 文件(尤其是访问控制),则可能需要升级。查看 Apache 文档了解更多信息。

我们现在使用 uWSGI 来运行 PHP,而不是 suPHP (mod_suphp)。

文档链接:FAQ

链接到 rewrite_mod for Apache 2.4 Apache 2.4

【讨论】:

    【解决方案3】:

    你可以试试我的想法。

    1. 在您不希望用户访问的文件夹内创建一个index.htmlindex.php 文件,例如project 文件夹;因此,当用户尝试访问www.mydomain.com/project 并查看内容时,将显示index.html
    2. 使用phpJavaScript 创建一个条件,将redirect 用户index.html

    【讨论】:

      【解决方案4】:

      有几种方法可以解决这个问题

      您可以尝试像 Laravel 那样使用文件夹结构,设置 MVC(模型-视图-控制器)架构可以限制仅查看特定请求。

      遵循 REST 模式。如果有人去

      mydomain.com/project //Returns 404 error
      

      必须定义/project的控制器,如果没有定义会抛出404错误

      同样,只要你定义一个类似的项目视图

      Route::get('project', 'This is the project page');
      

      这是访问 /project 目录的唯一方式,我建议您了解 REST 模式并遵循 MVC/MTV 责任驱动设计。

      【讨论】:

        【解决方案5】:

        至少根据您的问题,您的服务器似乎正在运行 PHP。这意味着你很可能在那里做错了什么。但正如 Voloshin 评论的那样,您需要扩展您的问题。老实说,扫描您的 PHP 以检查您是否有一个仅显示“./”而不是“index.html”的链接。如果你没有类似的东西,那么检查你所有的&lt;a href="link" /&gt; link &lt;/a&gt; 标签以确保你没有搞砸那里。 祝您的代码一切顺利!

        【讨论】:

          猜你喜欢
          • 2011-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-12
          • 2015-07-10
          相关资源
          最近更新 更多