PHP 重定向优化:防止重复链接和限制重定向次数
要设置重定向后链接只要不同就停止重定向,可以在每次重定向之前先检查重定向的URL是否与上一次重定向的URL相同。如果相同,则停止重定向。\n\n修改代码如下:\n\nphp\n// 检查网址是否包含"ad.94zhe.ltd"\n\$current_url = \$_SERVER['HTTP_HOST'] . \$_SERVER['REQUEST_URI'];\nif (strpos(\$current_url, "ad.94zhe.ltd") !== false) {\n // 检查是否已经重定向过\n if (!isset(\$_SESSION['redirected'])) {\n // 检查重定向次数\n if (!isset(\$_SESSION['redirect_count'])) {\n \$_SESSION['redirect_count'] = 0;\n }\n\n // 设置最大重定向次数\n \$max_redirects = 3;\n\n // 设置重定向的时间间隔(单位:秒)\n \$redirect_interval = 3600; // 1小时\n\n // 检查是否已经过了一个小时\n if (!isset(\$_SESSION['last_redirect_time']) || (\$_SESSION['last_redirect_time'] + \$redirect_interval) <= time()) {\n \$_SESSION['redirect_count'] = 0;\n \$_SESSION['last_redirect_time'] = time();\n }\n\n // 检查是否达到最大重定向次数\n if (\$_SESSION['redirect_count'] < \$max_redirects) {\n \$_SESSION['redirected'] = true;\n \$_SESSION['redirect_count']++;\n\n // 生成随机域名\n \$domain = generateRandomDomain();\n\n // 获取当前请求的参数\n \$parameters = \$_SERVER['QUERY_STRING'];\n\n // 构建重定向URL\n \$redirect_url = "http://" . \$domain . "/app/index.php?" . \$parameters; // 替换为你的重定向URL路径\n\n // 检查重定向的URL是否与上一次重定向的URL相同\n if (\$redirect_url == \$_SESSION['last_redirect_url']) {\n // 重定向的URL与上一次相同,停止重定向\n echo "重定向链接相同";\n exit();\n }\n\n // 更新上一次重定向的URL\n \$_SESSION['last_redirect_url'] = \$redirect_url;\n\n // 发起重定向\n header("Location: " . \$redirect_url);\n exit(); // 终止后续输出\n } else {\n // 达到最大重定向次数时的处理\n // 可以输出错误信息或者做其他操作\n echo "重定向次数过多";\n exit();\n }\n }\n}\n\n\n这样,如果重定向的URL与上一次重定向的URL相同,则会停止重定向。
原文地址: https://www.cveoy.top/t/topic/pA0M 著作权归作者所有。请勿转载和采集!