PHP перенаправление по умолчанию для страниц и 404 ошибки - PullRequest
0 голосов
/ 21 апреля 2020

Я объединяю 3 разных домена (сайта) с доменом 4-го хаба. Перенаправления, перечисленные в массиве редиректов, работают, но есть ненужные страницы, созданные с помощью Drupal CMS, которые не имеют значения (и, следовательно, не перенаправляют на страницу в домене-концентраторе). Я хотел бы установить перенаправление по умолчанию для / junk-pages. Я также хочу, чтобы ошибки 404 отображались на новой странице 404 ошибки узловых доменов, а не на странице ошибок 404 для старых доменов.

// Array of pages from old-domain.com redirected to relavant page on hubsite.com for site merger
$redirect_targets = array(
  '/old-domain1' => 'https://hubsite.com/page-one',
  '/old-domain2' => 'https://hubsite.com/page-two',
  '/old-domain3' => 'https://hubsite.com/page-three',
);

if ( (isset($redirect_targets[ $_SERVER['REQUEST_URI'] ] ) ) && (php_sapi_name() != "cli") ) {
  echo 'https://hubsite.com'. $_SERVER['HTTP_HOST'] . $redirect_targets[ $_SERVER['REQUEST_URI'] ];
  header('HTTP/1.0 301 Moved Permanently');
  header('Location: https://hubsite.com'. $_SERVER['HTTP_HOST'] . $redirect_targets[ $_SERVER['REQUEST_URI'] ]);

  if (extension_loaded('newrelic')) {
    newrelic_name_transaction("redirect");
  }
  exit();
}

// Any page from old-domain.com not listed in the array above goes to a default location on hubsite.com
// Any 404 error on old-domain.com goes to 404 error page on hubsite.com instead of old-domain.com
...