这段代码是为了防止网址中包含"ad.94zhe.ltd"的情况下进行重定向,但是由于没有限制重定向次数,可能会导致重定向次数过多的问题。

要解决这个问题,你可以添加一个计数器来记录重定向次数,并设置一个最大重定向次数的限制。当达到最大重定向次数时,停止重定向并做其他处理。

以下是修改后的代码示例:

<?php
// 检查网址是否包含"ad.94zhe.ltd"
$current_url = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
if (strpos($current_url, "ad.94zhe.ltd") !== false) {
    // 检查是否已经重定向过
    if (!isset($_SESSION['redirected'])) {
        // 检查重定向次数
        if (!isset($_SESSION['redirect_count'])) {
            $_SESSION['redirect_count'] = 0;
        }

        // 设置最大重定向次数
        $max_redirects = 5;

        // 检查是否达到最大重定向次数
        if ($_SESSION['redirect_count'] < $max_redirects) {
            $_SESSION['redirected'] = true;
            $_SESSION['redirect_count']++;

            // 生成随机域名
            $domain = generateRandomDomain();

            // 获取当前请求的参数
            $parameters = $_SERVER['QUERY_STRING'];

            // 构建重定向URL
            $redirect_url = "http://" . $domain . "/app/index.php?" . $parameters; // 替换为你的重定向URL路径

            // 发起重定向
            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;
}

在上述代码中,我添加了一个redirect_count的计数器来记录重定向次数,然后设置了一个max_redirects变量来限制最大重定向次数。当达到最大重定向次数时,会输出错误信息并停止后续操作。你可以根据需要修改最大重定向次数和处理方式

php 检查网址是否包含ad94zheltd$current_url = $_SERVERHTTP_HOST $_SERVERREQUEST_URI;if strpos$current_url ad94zheltd !== false 检查是否已经重定向过 if !isset$_SESSIONredirected $_SESSIONredirected = tru

原文地址: https://www.cveoy.top/t/topic/hRRR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录