Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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 如何拒绝任何人从URL访问?_Php_.htaccess - Fatal编程技术网

Php 如何拒绝任何人从URL访问?

Php 如何拒绝任何人从URL访问?,php,.htaccess,Php,.htaccess,这可能很容易。。。但是在.htaccess文件中写入什么来阻止任何人从URL访问特定页面呢 像 用户可以更改url中的id值以访问另一个页面,因此我想防止…您不能,因为用户可以看到id并在其他选项卡和访问中键入相同的内容,有一种方法可以防止编辑,但如果不访问,请创建一个php文件并阻止每个id=12的请求,或者任何您想要阻止的请求。我认为您不能使用.htaccess文件来阻止。您最好使用会话和/或cookies来控制对受限内容的访问。我将编写一些PHP代码来处理此问题,而不是.htaccess规

这可能很容易。。。但是在.htaccess文件中写入什么来阻止任何人从URL访问特定页面呢


用户可以更改url中的id值以访问另一个页面,因此我想防止…

您不能,因为用户可以看到id并在其他选项卡和访问中键入相同的内容,有一种方法可以防止编辑,但如果不访问,请创建一个php文件并阻止每个id=12的请求,或者任何您想要阻止的请求。

我认为您不能使用.htaccess文件来阻止。您最好使用会话和/或cookies来控制对受限内容的访问。

我将编写一些PHP代码来处理此问题,而不是.htaccess规则

类似这样的方法会奏效:

if(array_key_exists('id', $_GET) {
  if($_GET['id'] === 12)
    die("Cannot view this page");
}

研究PHP中的身份验证和访问控制。如果有人能在这里给你一个代码片段或简短的回答,那就有点复杂了


如果您在实现所学内容的代码中遇到了特定问题,那么这里就是寻求帮助的地方。

同意,如果允许用户访问特定页面,这更像是服务器端的问题。使用.htaccess规则可能会变得非常复杂

为什么不试试这样的东西:

<?php
  $allow = array(12, 13); // values that you want to allow access to
  if ( in_array($_GET['id'], $allow) !== true ) {
    die("Access denied.");
  }
?>


您可以改用post方法,这样用户就不知道文件之间传递的是什么变量。

这可能会起到作用

RewriteEngine on
RewriteRule ^/?id=12$ /denied [L]

如果存在该查询参数,它至少可以防止调用脚本,这比允许点击实际访问脚本稍微安全一些。

您可以通过PHP执行此操作:

<?php
$denied = array(12);
if (isset($_GET['id']) && in_array($_GET['id'], $denied)) {
    header('HTTP/1.1 403 Forbidden');
    exit;
}
?>


这可能应该在服务器端脚本中完成,而不是在.htaccess中。是否允许用户访问,但阻止他们访问服务器上的所有其他页面?@tkkuzzy:.htaccess根据定义是服务器端的。任何有点技术性的用户都可以查看它,这没有提供真正的保护。
<?php
$denied = array(12);
if (isset($_GET['id']) && in_array($_GET['id'], $denied)) {
    header('HTTP/1.1 403 Forbidden');
    exit;
}
?>