【发布时间】:2013-04-04 08:51:17
【问题描述】:
我试图拒绝访问整个目录,除非文件(无论它在哪里)返回 200 状态。这需要写在我的 .htaccess 文件中。我知道这不是有效的 .htaccess 语法,除了 deny from all 部分,我只是在展示我的概念。
if(external-page.php returns anything but 200 header)
{
# deny the current directory
deny from all
}
external-page.php 将运行一个脚本来检查用户是否拥有有效的凭据。如果他们这样做,它将加载状态为 200 的页面。如果他们不是有效用户,它将返回 404 状态。
.htaccess 文件位于我要拒绝的目录中,但是我要检查其状态的脚本不在该目录中。
提前致谢。
更新:因为似乎有些混乱。我在下面列出了我的目录结构:
DIRECTORY_A/
DIRECTORY_B/
.HTACESS
FILE_1.PHP
FILE_2.PHP
FILE_3.PHP
FILE_A.PHP
基于这个目录结构,我想要做的是......如果FILE_A.PHP 返回 404(或者它可以返回任何东西,只要我可以检查它)。然后我想拒绝对DIRECTORY_B 的所有访问。如果FILE_A.PHP 返回 200(或 true,或者我可以检查的任何内容),那么我想允许访问 DIRECTORY_B
如果使用 .htaccess 不是完成此任务的最佳方法,那么我愿意接受另一种方法。但是,我被限制将代码放入 FILE_1.PHP 和 FILE_2.PHP 和 FILE_1.PHP... 这就是为什么我想限制对整个 DIRECTORY_B 目录的访问。
【问题讨论】:
-
你想要 404 还是 200...?
-
我更愿意检查 200 状态,但我也可以检查 404。任何一个都可以。
-
为什么?!!这个有什么用?如果该目录中的文件正在通过脚本传输,那么您的拒绝将无助于您做任何事情,如果不是,那么您实际上是在拒绝所有用户(包括有效用户)的访问。
-
您的意思是要阻止人们查看您目录中的文件吗?
-
@meewoK 是...仅当我在该目录之外检查的脚本返回 404 状态时
标签: php apache .htaccess http-headers