为了账号安全,请及时绑定邮箱和手机立即绑定

基于引荐来源的重定向发送 ERR_TOO_MANY_REDIRECTS

基于引荐来源的重定向发送 ERR_TOO_MANY_REDIRECTS

PHP
四季花海 2023-04-21 13:36:54
我得到的这段代码由于某种原因没有完全正常工作,尽管它似乎在正确的方向上,而且我猜测它为什么不工作,尽管我不知道如何修复。ide 是这样的,如果 HTTP_REFERER = 一个包含单词示例的网站,而你没有登录它,那么将你重定向到 mysite.com/loginadd_action( 'init', 'example_redirect');function metorik_redirect() {if (!is_user_logged_in() && strpos($_SERVER['HTTP_REFERER'], "example")){        wp_redirect( site_url('/login/') );         exit;     }   }上面的规则似乎在满足条件时触发,但随后返回 ERR_TOO_MANY_REDIRECTS我的猜测是,每次它循环通过该函数时,它都会不断地找到 referer 作为示例,然后它永远不会退出它。如前所述,只是一个猜测。更新 1: 我尝试使用我在此处 stackoverflow 中找到的其他代码,结果相同:add_action('template_redirect', 'redirect_if_example');function redirect_if_example(){    if ( !is_user_logged_in() && coming_from_example(wp_get_referer()) ){         wp_safe_redirect( "/login/" );         exit;     } else{          wp_safe_redirect( get_home_url() );          exit;     }}function coming_from_example($url_string){   if ($url_string){      $url = parse_url($url_string);      return strpos($url['host'], 'example.com');   } else {     return false;   }}谢谢亲切的问候
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

尝试在正确的钩子中重定向并使用正确的 strpos 函数,如下所示:(此代码应在您的 functions.php 文件中)


add_action( 'template_redirect', 'example_redirect');

function example_redirect() {

if (!is_user_logged_in() && strpos($_SERVER['HTTP_REFERER'], "example") !== false){

        wp_redirect( wp_login_url() ); 

        exit; 

    }   

}

另外请确保您实际上来自example其中包含字符串的网站。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信