在apache中使用php限制对文件的访问

在apache中使用php限制对文件的访问,php,apache,Php,Apache,我在ApacheWeb服务器上有一个站点。 我有一个这样的文件结构 test.php accessA.php otherfiles.php 我想为所有用户和所有文件添加对test.php文件的访问限制。例如,如果用户输入http://site/test.php作为url、文件或用户想要访问站点/test.php目录时,会显示错误消息,用户无法访问testA.php。 但是我只希望允许accessA.php文件访问test.php文件,并使用如下include语句。 accessA.php &l

我在ApacheWeb服务器上有一个站点。 我有一个这样的文件结构

test.php
accessA.php
otherfiles.php
我想为所有用户和所有文件添加对
test.php
文件的访问限制。例如,如果用户输入
http://site/test.php
作为url、文件或用户想要访问
站点/test.php
目录时,会显示错误消息,用户无法访问
testA.php
。 但是我只希望允许accessA.php文件访问test.php文件,并使用如下include语句。 accessA.php

<?php
include_once 'test.php' ;
?>

换句话说,我只想允许对
accessA.php
访问
test.php
文件。 我怎么做到的


我可以使用open_basedir吗?

将test.php文件放在这一行的顶部:

if($_SERVER['SCRIPT_NAME']=='test.php')die('not allowed');
您也可以通过htaccess规则拒绝访问

RewriteRule ^test.php$ - [R=404,L]

您不能使用open_basedir,它是一种允许chroot apache实例的配置(在open base dir变量中定义网站根的级别上创建网站根)
拒绝访问某个页面的更好方法是在
text.php
的第一行执行htaccess

,根据一组已知权限测试用户帐户。如果用户没有适当的权限,请发送303。我可以使用open_basedir吗?我不明白你真正想问什么。请让问题更清楚。在这种情况下,我如何使用accessA.php访问test.php??如果您从
accessA.php
中包含
test.php
,脚本名称将是
accessA.php
而不是
test.php
,那么您将能够包含
test.php