php - 有什么方法可以跟踪仅来自特定页面后要访问的网页?
问题描述
我希望我的 login.php 页面只能在来自 index.php 之后访问,而不是直接输入“www.example.com/login.php”。如果有任何对 login.php 的直接访问,它应该会自动重定向到某些 404 页面或 example.com。如何实施?
解决方案
你可以这样使用$_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");
}
?>
推荐阅读
- azure - 通知中心批量导入失败并出现“格式错误”错误
- react-native - 我如何在博览会中使用介绍动画“飞溅”
- c# - 从 .net 应用程序执行 Oracle 存储过程
- sql - 从 SQL 构建 NodeJS 对象
- django - 为什么 Django views.py 在不更改 url 的情况下重定向到另一个视图?
- c - C - 从文件中选择随机字符串
- mysql - 如何并排显示单表查询的结果
- java - last==i 背后的直觉?
- feathersjs - 从服务调用自定义中间件
- java - SelectionTracker.Builder 不工作 IllegalArgumentException