【问题标题】:how to restrict access to public files with apache and php?如何使用 apache 和 php 限制对公共文件的访问?
【发布时间】:2016-05-26 14:03:04
【问题描述】:

以前,该网站托管在专用网络上,因此无需限制对文件的访问。

网站是一页长表,每一行对应一个文件(具有相同的id)。当您单击该行时,JS 会加载文件。这些文件是公开可用的,因此 JS 可以在没有 AJAX 的情况下加载它们。

现在,该网站被移动到互联网上。

我可以用 PHP 限制对主页的访问,但我不能将文件移动到无法访问的文件夹,因为 JS 将无法加载。

我尝试将所有流量重定向到 LOGIN 页面,PHP 将在该页面中决定是否允许,如下所示:

在阿帕奇:

RewriteRule (.*) /login.php

在login.php中:如果没有被超越:将被解雇,如果被超越,将被重新定向回原始文件:

header('Location: ' . $_SERVER['request_url']);

我不知道如何让 apache 知道不要重定向那些已经确认的商品的问题。所以现在

apache redirect to login.php -> login.php redirect to original page -> apache redirects to login.php -> and so on...

我尝试在 php 中设置环境变量:

$_ENV['stop_rewrite'] = true;

在 apache 中:

<if !stop_rewrite>
 RewriteRule (.*) /login.php
</if>

但我收到 500 错误..

知道如何解决这个问题吗?

【问题讨论】:

标签: javascript php apache


【解决方案1】:

在位于根目录的 .htaccess 文件中添加以下行:

Options -Indexes 

【讨论】:

  • 问题是问如何为一堆 URL 添加身份验证,而不是如何为没有索引文档的目录关闭目录索引的显示。
猜你喜欢
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
  • 2020-07-01
相关资源
最近更新 更多