Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使PHP变量可访问.htaccess?_Php_.htaccess - Fatal编程技术网

如何使PHP变量可访问.htaccess?

如何使PHP变量可访问.htaccess?,php,.htaccess,Php,.htaccess,我想从PHP中分配一个变量,并使该变量可用于我的.htaccess文件,以便它可以使用该值来拒绝或允许访问 index.php文件示例: 是否有一种基于PHP提供的值允许或拒绝通过.htaccess进行访问的方法?在运行PHP脚本之前运行.htaccess文件。换句话说,你所描述的是不可能的 在运行PHP脚本之前运行.htaccess文件。换句话说,你所描述的是不可能的 .htaccess是在PHP文件之前由服务器读取的,因此您要查找的内容是不可能的 另一方面,您可以在.htaccess中设置P

我想从PHP中分配一个变量,并使该变量可用于我的.htaccess文件,以便它可以使用该值来拒绝或允许访问

index.php文件示例:

是否有一种基于PHP提供的值允许或拒绝通过.htaccess进行访问的方法?

在运行PHP脚本之前运行.htaccess文件。换句话说,你所描述的是不可能的

在运行PHP脚本之前运行.htaccess文件。换句话说,你所描述的是不可能的

.htaccess是在PHP文件之前由服务器读取的,因此您要查找的内容是不可能的

另一方面,您可以在.htaccess中设置PHP变量

也许这会对您有所帮助。

.htaccess是在PHP文件之前由服务器读取的,所以您要查找的内容是不可能的

另一方面,您可以在.htaccess中设置PHP变量


也许这会对您有所帮助,因为其他答案已经指出,您遇到了鸡/蛋问题:PHP正在运行的事实意味着.htaccess没有理由禁止它,它的工作已经完成

拒绝访问PHP中的页面(您应该在PHP中执行更复杂的身份验证和授权工作)是一件小事:

if($myUser->shouldNotBeHere()) {
  header('HTTP/1.1 403 Forbidden');
  die('Access denied!');
}

这看起来与浏览器的Apache级别拒绝相同。

正如其他答案所述,您遇到了鸡/蛋问题:PHP正在运行这一事实意味着.htaccess没有理由禁止它,它的工作已经完成

拒绝访问PHP中的页面(您应该在PHP中执行更复杂的身份验证和授权工作)是一件小事:

if($myUser->shouldNotBeHere()) {
  header('HTTP/1.1 403 Forbidden');
  die('Access denied!');
}

这看起来与浏览器的Apache级别拒绝相同。

如果您真的需要这种方法,唯一远程可行的选项是创建临时状态/锁定文件,同时只设置PHP会话变量。然后,可以通过从%{HTTP_COOKIE}提取ID并进行简单的重写来探测它们的存在。如果您真的需要这种方法,唯一远程可行的选择是创建临时状态/锁文件,同时只设置一个PHP会话变量。然后,可以通过从%{HTTP_COOKIE}提取ID并进行简单的重写来探测它们的存在。
SetEnv HTTP_MY_VARIABLE "my value"
if($myUser->shouldNotBeHere()) {
  header('HTTP/1.1 403 Forbidden');
  die('Access denied!');
}