要解决这个问题,你可以在重定向前将当前的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不一样时才进行重定向

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

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

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