Перенаправление на новую страницу с сайта Drupal - PullRequest
3 голосов
/ 02 сентября 2011

Я работаю с сайтом Drupal, и мы хотим настроить специальный URL, который перенаправляет на внешний сайт. Другими словами, если http://www.mysite.com является нашим сайтом Drupal, мы хотим, чтобы http://www.mysite.com/external перенаправлял на внешний сайт.

У меня очень мало опыта работы с Drupal, и я не знаю, как это настроить. Любая помощь приветствуется!

Ответы [ 5 ]

5 голосов
/ 03 сентября 2011

Если все, что вам нужно, это перенаправить пользователей на один и тот же сайт, когда они переходят по ссылке, которая приводит их к http://www.example.com/external,, тогда вы можете реализовать hook_menu () , используя код, подобный следующий:

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));
}
2 голосов
/ 02 сентября 2011

Вы можете установить модуль Path Redirect , который позволит вам сделать это точно, без кодирования.

Если вы используете Drupal 7, вам нужен Redirect модуль.

1 голос
/ 14 октября 2015

Если вы хотите перенаправить существующий URL, другой способ через пользовательский интерфейс - использовать популярный модуль Rules :

например: экспорт "Правила реакции", перенаправить домашнюю страницу на внешний домен:

{ "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 / response / import

0 голосов
/ 28 апреля 2018

Если вы используете Drupal 8, вы можете использовать класс RedirectResponse для этого.

использовать Symfony \ Component \ HttpFoundation \ RedirectResponse;

Подробно о том, как реализовать, вы можете прочитать в этом посте Как попробовать страницу перенаправления на drupal 8

0 голосов
/ 02 сентября 2011

вы должны скачать модули, которые упоминал Клайв и вы можете добавить ссылку меню, которая перенаправляет на внешний сайт без какого-либо модуля

1- Зайдите в админ / структуру / меню

2 - выберите меню, к которому вы хотите добавить URL, и нажмите {add Link}

3 - добавить внешний путь в поле «путь», как показано ниже: http://yahoo.com"

удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...