php 检查网址是否包含ad94zheltd$current_url = $_SERVERHTTP_HOST $_SERVERREQUEST_URI;if strpos$current_url ad94zheltd !== false 检查是否已经重定向过 if !isset$_SESSIONredirected 检查重定向次数 if !isset
要解决这个问题,你可以在重定向前将当前的URL保存下来,然后在生成随机域名后,检查新的重定向URL是否与之前的URL相同。如果相同,则不再进行重定向。
以下是修改后的代码示例:
<?php
// 检查网址是否包含"ad.94zhe.ltd"
$current_url = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
// 检查是否已经重定向过
if (!isset($_SESSION['redirected'])) {
// 检查重定向次数
if (!isset($_SESSION['redirect_count'])) {
$_SESSION['redirect_count'] = 0;
}
// 设置最大重定向次数
$max_redirects = 1;
// 检查是否达到最大重定向次数
if ($_SESSION['redirect_count'] < $max_redirects) {
$_SESSION['redirect_count']++;
// 生成随机域名
$domain = generateRandomDomain();
// 获取当前请求的参数
$parameters = $_SERVER['QUERY_STRING'];
// 构建重定向URL
$redirect_url = "http://" . $domain . "/app/index.php?" . $parameters; // 替换为你的重定向URL路径
// 检查重定向URL是否与之前的URL相同
if ($redirect_url !== $current_url) {
$_SESSION['redirected'] = true;
// 发起重定向
header("Location: " . $redirect_url);
exit(); // 终止后续输出
}
} else {
// 达到最大重定向次数时的处理
// 可以输出错误信息或者做其他操作
echo "重定向次数过多";
exit();
}
}
// 生成随机域名的函数
function generateRandomDomain() {
$allowed_chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
$random_string = '';
$length = 13; // 生成域名的长度
// 生成随机字符串
for ($i = 0; $i < $length; $i++) {
$random_string .= $allowed_chars[rand(0, strlen($allowed_chars) - 1)];
}
// 拼接域名
$domain = $random_string . ".ad.94zhe.ltd"; // 可以根据需要更改后缀
return $domain;
}
通过将当前URL保存到$current_url变量中,并在生成随机域名后检查新的重定向URL是否与之前的URL相同,可以确保只有在重定向后的URL与之前的URL不一样时才进行重定向
原文地址: https://www.cveoy.top/t/topic/hRSc 著作权归作者所有。请勿转载和采集!