Перенаправление на тот же путь в новом домене

170
23

Привет, у меня есть новый домен и вы хотите перенаправить моих пользователей на новый эквивалентный путь домена.


Итак, если они продолжаются: oldsite.com/money.php?value=1


Затем он должен направить их на: newsite.com/money.php?value=1


У меня одинаковый файл header.php для всех страниц, так что это можно сделать с помощью простой строки php?

спросил(а) 2021-01-19T18:16:40+03:00 3 месяца, 2 недели назад
1
Решение
193

Я дам вам 2 функции, которые могут быть полезны для какой-то другой вещи;


function currentURL() {
$pageURL = 'http';
($_SERVER["SERVER_PORT"] === 443) ? $pageURL .= "s" : '';
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}

function redirect2NewDomain () {
$url = currentURL();
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE) {
return false;
}
# Get the url parts
$parts = parse_url($url);
Header( "Location : {$parts['scheme']}://{$parts['host']}" );
}


Конечно, использование .htaccess намного проще и будет лучше для SEO;

RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

Я надеюсь, что это поможет

ответил(а) 2021-01-19T18:16:40+03:00 3 месяца, 2 недели назад
131

Вам не следует делать это на PHP. Эти вещи можно легко сделать в вашем .htaccess:


#Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.olddomain.com$[OR]
RewriteCond %{HTTP_HOST} ^olddomain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

Этот код перенаправит olddomain.com/page.php на newdomain.com/page.php

Он также перенаправляет папки: olddomain.com/folder/ to newdomain.com/folder/


Используя этот код, Google также поймет, что вы переключаете домены и не уменьшаете свои ряды страниц для двойного контента.

ответил(а) 2021-01-19T18:16:40+03:00 3 месяца, 2 недели назад
124

Что-то вроде этого должно работать:


$uri = $_SERVER['REQUEST_URI'];
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://newsite.com$uri" );

Но если вы можете изменить конфигурацию своего веб-сервера, это будет лучше для этого.

ответил(а) 2021-01-19T18:16:40+03:00 3 месяца, 2 недели назад
62

Мне нравится использовать этот код:


// BEGIN redirect domain
$domainRedirect = 'myNewDomain.com';
if(
($_SERVER['HTTP_HOST'] != $domainRedirect)
){
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://".$domainRedirect.$_SERVER['REQUEST_URI']);
exit;
}
// END redirect domain


header("HTTP/1.1 301 Moved Permanently"); 

является необязательным, но лучше для SEO: (https://moz.com/learn/seo/redirection)

ответил(а) 2021-01-19T18:16:40+03:00 3 месяца, 2 недели назад
-4

Вы можете использовать это:


$new_domain = "http://example.com"; //your new domain
$uri = $_SERVER['REQUEST_URI']; // URL from the request with the get variables
header("Location: " . $new_domain . $uri);

ответил(а) 2021-01-19T18:16:40+03:00 3 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема