禁用某些页面的HTTP GET

时间:2012-06-01 08:09:40

标签: php .htaccess get wamp

我想为我网站上的一些php页面禁用HTTP GET方法。我可以用php代码吗?

假设我有两页 a.html action.php 。现在 a.html 是可以使用任何方法访问的普通页面,并将信息提交给 action.php 。但我希望提交给 action.php 的信息只能通过post方法提交。

3 个答案:

答案 0 :(得分:8)

发送方法不允许标题以及一些解释性文字(最好比我下面的例子更友好,更有用)。

之后退出,因此您不会继续使用常规页面进行处理。

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
  header('Method Not Allowed', true, 405);
  echo "GET method requests are not accepted for this resource";
  exit;
}

您可能需要考虑白名单(并测试缺少您接受的方法)而不是黑名单GET。 (因为你可能不想要PUT,DELETE等)。

答案 1 :(得分:1)

将代码放在开头。

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
  header('Location: a.html');
  exit;
}

答案 2 :(得分:0)

如果是GET,您可以阅读当前方法并重定向用户。