Описание проблемы
Ситуация: Вы установили CMS на свой домен в зоне .bget.ru, закончили разрабатывать сайт, купили домен в зоне .ru и прилинковали его к той же директории.
Например:- default.bget.ru - домен, на котором разрабатывался сайт;
- normal.ru - домен, на который Вы хотите перенести сайт.
оба домена прилинкованы к одному и тому же сайту /home/u/user/public_html
Открываем домен (normal.ru), сайт открывается, но все ссылки на сайте ведут на домен default.bget.ru
Решение
ВАЖНО!!! Перед этими действиями сделайте бекап файлов и базы!
Заходим в директорию сайта
$ cd /home/u/user/public_html
далее находим все вхождения домена default.bget.ru в файлах
$ grep -rl default.bget.ru .
в результате выполнения команды мы получим список файлов, пример ниже:
./templates/Default/main.tpl ./05f012a91b581da7242b4a85a0d088b2/words.db ./engine/cache/system/banners.php ./engine/cache/tagscloud_7a1920d61156abc05a60135aefe8bc67.tmp ./engine/data/config.php ./engine/modules/mymod.php
далее выполняем команду замены вхождения одной строки на другую:
$ sed -e "s/default\.bget\.ru/normal\.ru/g" -i ./templates/Default/main.tpl
./05f012a91b581da7242b4a85a0d088b2/words.db и т.д.
также можно выполнить процедуру в одну строку, если список файлов не слишком длинный:
$ grep -rl default.bget.ru . | xargs sed -e "s/default\.bget\.ru/normal\.ru/g" -i
или так:
$ grep -rl default.bget.ru . | while read line; do sed -e "s/default\.bget\.ru/normal\.ru/g" -i
$line; done
После этого необходимо заменить все вхождения домена в базе данных, узнать какая база данных используется можно из конфигурационного файла сайта. После того, как мы узнали имя базы данных, имя пользователя базы данных и пароль делаем резервную копию базы данных (дамп), меняем в ней значения старого домена на новый и загружаем исправленный дамп обратно в базу.
$ mysqldump -u USER -pPASSWD USER | sed -e "s/default\.bget\.ru/normal\.ru/g" > dump.sql $ mysql -u USER -pPASSWD USER < dump.sql $ rm dump.sql
USER - это имя базы данных (оно же имя пользователя базы данных - например: login_db)
PASSWD - пароль к базе данных, который Вы установили. Заметьте, что между ключом -p и паролем пробел отсутствует.
Проверяем, все должно работать корректно. Архив, сделанный в начале статьи, можно удалять.
Удачной работы!