我试图拒绝访问整个目录,除非文件(可能在哪里)返回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(或者是真的,或者我可以检查的任何内容),那么我想允许访问DIRECTORY_B
如果使用.htaccess不是实现此目的的最佳方法,那么我对另一种方法持开放态度。但是,我无法将代码放入FILE_1.PHP
和FILE_2.PHP
以及FILE_1.PHP
...这就是为什么我要限制对整个DIRECTORY_B
目录的访问。
答案 0 :(得分:2)
你不能做这种依赖.htaccess不是一个脚本
答案 1 :(得分:1)
执行所需操作的常用方法是拥有一个包含在所有PHP文件中的身份验证php脚本并检查会话。 当您在另一个PHP文件中包含一个PHP文件时,它将被执行。
因此,FILE_A.php将具有身份验证代码,并由FILE_1.php,FILE-2.php,FILE_3.php包含。
您不需要.htaccess,因为您可以直接从PHP设置标题(例如禁止)。
见:
只是为了好玩,你可以做以下事情: