Zivler

Перенос сайта на другой домен на другой CMS

6 posts in this topic

Недавно начал переносить сайт на новый домен на другой CMS. Начал с переноса внутренних страниц. На новый сайт копировал информацию со старого сайта, а в .htaccess прописывал по такому принципу:

Redirect 301 /aaaaa/bbbbbb.html http://новый-сайт.ru/ccccc/ddddd.html'>http://новый-сайт.ru/ccccc/ddddd.html

 

То есть, на новом сайте страницы доступны под другим адресом. Всё шло отлично. И вот наконец пришло время сделать редирект для главной. Прописал:

Redirect 301 / http://новый-сайт.ru/

 

Редирект главной происходит верно. Но теперь для старых страниц происходит неверное перенаправление вида:

http://старый-сайт.ru/aaaaa/bbbbb.html --> http://новый-сайт.ru/aaaaa/bbbbb.html

А должно быть http://старый-сайт.ru/aaaaa/bbbbb.html --> http://новый-сайт.ru/ccccc/ddddd.html'>http://новый-сайт.ru/ccccc/ddddd.html

 

То есть, редирект привязался ко всем страницам старого сайта и перенаправляет по единому шаблону "старая страница" ->> "новая страница с тем же адресом на другом домене". Не подскажете как решить беду?

Share this post


Link to post
Share on other sites

Редирект главной постав в сомом последном строке в списке редиректов

Zivler likes this

Share this post


Link to post
Share on other sites

Редирект главной постав в сомом последном строке в списке редиректов

Помогло. Действует. Но является ли это верным решением с точки зрения валидности?

Я вот сейчас думаю над решением данной проблемы через index.php. В интернете нашёл решение, но оно не работает у меня. Вот так написано:

 

В файле старый_сайт/index.php сделай редирект куда тебе нужно:

<? 
if($_SERVER['REQUEST_URI'] == '/' ) header("Location:http://site.ru/"); 
//вроде как-то так 
?>

Не действует. :(

Share this post


Link to post
Share on other sites

Если я вас верно понял, набросал на коленке простенький скрипт (редирект по связке старый-новый URI):

<?php

// url of new domain
$new_domain = 'http://chetkij-sait.com';

// key = old URI
// value = new URI
$urls = array(
    '/directory/test.html' => '/new-dir/testing.html',
    '/other-dir/some-url.html' => '/new-dir/some-url.html'
);

if(array_key_exists($_SERVER['REQUEST_URI'], $urls)) {
    header("Location: " . $new_domain . $urls[$_SERVER['REQUEST_URI']]);
    exit();
}

?>

забить это в index.php в корне сайта и в .htaccess аналогично:

RewriteEngine On
RewriteBase /
RewriteRule ^.htaccess$ - [F]

RewriteCond %{REQUEST_URI} !\.(ico|css|js|txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /index.php [L]

и будет то, чего хотите, если настроите массив старых-новых URI $urls и название нового домена в $new_domain

Zivler likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.