drupal模块重定向目标问题

drupal模块重定向目标问题,drupal,redirect,hook,Drupal,Redirect,Hook,我正在研究另一个模块的想法。该模块只需将用户自动重定向到指定节点,如以下示例代码所示: function test_module_init(){ drupal_goto('node/100'); } 代码只是一个例子。但是,真正的问题是代码一直在执行,直到浏览器返回“太多重定向”错误消息 我明白为什么会这样。我需要的帮助是最好的钩子来放置我的drupal_goto代码,使其执行一次,而不是当前在钩子初始化中执行的多次。您不能这样做吗: function test_module

我正在研究另一个模块的想法。该模块只需将用户自动重定向到指定节点,如以下示例代码所示:

  function test_module_init(){
    drupal_goto('node/100');
  }
代码只是一个例子。但是,真正的问题是代码一直在执行,直到浏览器返回“太多重定向”错误消息


我明白为什么会这样。我需要的帮助是最好的钩子来放置我的drupal_goto代码,使其执行一次,而不是当前在钩子初始化中执行的多次。

您不能这样做吗:

 function test_module_init() {
    if(isset($_GET['q') && $_GET['q'] == 'node/100') {
       // skip goto statement
       return;
    }
    drupal_goto('node/100');
 }

您编写的init钩子会在每次页面加载时触发,包括在node/100上时。这就是你被重定向的原因。因此,页面正在重定向到自身。只有当您还没有在node/100上时,才需要重定向。如果需要,您可以在$_GET['q']中找到此信息


你不需要一个不同的钩子,你只需要确保如果你已经在目标页面上,你不会调用drupal_goto

在这种情况下没有。我正在设置一个模块,该模块将检测用户所属的有机组,并始终将用户重定向到所述组。这样,用户只会看到他所属的组页面,而不会看到其他节点