首页 > 解决方案 > 有什么方法可以跟踪仅来自特定页面后要访问的网页?

问题描述

我希望我的 login.php 页面只能在来自 index.php 之后访问,而不是直接输入“www.example.com/login.php”。如果有任何对 login.php 的直接访问,它应该会自动重定向到某些 404 页面或 example.com。如何实施?

标签: php

解决方案


你可以这样使用$_SERVER['HTTP_REFERER']

<?php
  if(isset($_SERVER['HTTP_REFERER'])){
    $whitelist = array(
      "www.example.com"
    );
    
    $referer = $_SERVER['HTTP_REFERER'];
    // remove "http://" or "https://" from referer
    $referer = preg_replace('#^http(s)?://#', '', $referer);
    
    // check if referer registered in $whitelist
    if(!in_array($referer, $whitelist)){
      // show error 404
      header("HTTP/1.0 404 Not Found");
    }else{
      // do your code here or just do it below all of this code
    }
  }else{
    // show error 404
    header("HTTP/1.0 404 Not Found");
  }
?>

推荐阅读