从Drupal站点重定向到新页面

时间:2011-09-02 14:22:19

标签: drupal url redirect external

我正在使用Drupal网站,我们想要设置一个重定向到外部网站的特殊网址。换句话说,如果http://www.mysite.com是我们的Drupal网站,我们希望http://www.mysite.com/external重定向到外部网站。

我对Drupal的经验很少,并且不知道如何设置它。任何帮助表示赞赏!

5 个答案:

答案 0 :(得分:5)

如果你想要的只是将用户重定向到同一个网站,当他们按照指向http://www.example.com/external的链接时,你可以使用类似下面的代码实现hook_menu():< / p>

function mymodule_menu() {
  $items = array();

  $items['external'] = array(
    'title' => 'Redirect', 
    'page callback' => 'mymodule_redirect', 
    'access callback' => TRUE, 
    'type' => MENU_CALLBACK,
  );

  return $items;
}

function mymodule_redirect() {
  drupal_goto($url, array('external' => TRUE));
}

如果用户被重定向到的URL取决于URL中传递的值,那么您可以使用类似于以下代码的代码:

function mymodule_menu() {
  $items = array();

  $items['external/%'] = array(
    'title' => 'Redirect', 
    'page callback' => 'mymodule_redirect',
    'page arguments' => array(1), 
    'access callback' => TRUE, 
    'type' => MENU_CALLBACK,
  );

  return $items;
}

function mymodule_redirect($id) {
  // Calculate $url basing on the value of $id.
  drupal_goto($url, array('external' => TRUE));
}

答案 1 :(得分:2)

你可以安装Path Redirect模块,它可以让你做到这一点,不需要编码。

如果您使用的是Drupal 7,则需要Redirect模块。

答案 2 :(得分:1)

如果您想重定向现有网址,通过用户界面的另一种方式是使用热门的Rules模块:

例如:&#34;反应规则&#34;导出,将主页重定向到外部域:

{ "rules_redirect_homepage" : {
    "LABEL" : "Redirect homepage",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "data_is" : { "data" : [ "site:current-page:url" ], "value" : [ "site:url" ] } }
    ],
    "DO" : [ { "redirect" : { "url" : "http:\/\/example.com" } } ]
  }
} 

可以在 admin / config / workflow / rules / reaction / import

导入

答案 3 :(得分:0)

你必须下载Clive提到的模块 并且您可以添加重定向到外部站点的菜单链接,而无需任何模块

1-转到admin / structure / menu

2-选择要添加网址的菜单,然后点击{添加链接}

3-在“path”字段中添加外部路径,如下面的“http://yahoo.com”

祝你好运

答案 4 :(得分:0)

如果您使用的是Drupal 8,则可以使用RedirectResponse类来执行此操作。

使用Symfony \ Component \ HttpFoundation \ RedirectResponse;

有关如何实施的详细信息,您可以阅读此帖How to sample redirect page on drupal 8