我正在使用Drupal网站,我们想要设置一个重定向到外部网站的特殊网址。换句话说,如果http://www.mysite.com是我们的Drupal网站,我们希望http://www.mysite.com/external重定向到外部网站。
我对Drupal的经验很少,并且不知道如何设置它。任何帮助表示赞赏!
答案 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