繁体   English   中英

如何使用apache和php限制对公共文件的访问?

[英]how to restrict access to public files with apache and php?

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

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

现在,该网站已被移交给互联网托管。

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

我试图将所有流量重定向到LOGIN页面,PHP将在此处确定允许的访问方式,如下所示:

在apache中:

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变量:

$_ENV['stop_rewrite'] = true;

和在阿帕奇:

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

但我得到一个500错误。

任何想法如何解决这个问题?

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

Options -Indexes 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM