При переїзді на інший домен, зміну головного дзеркала або просто при переході на HTTPS. всередині сайту доводиться багато посилання змінювати вручну. Причому, посилання можуть бути присутні не тільки в шаблонах, але і в базі даних. А кількість сторінок могло накопичитися вже кілька сотень або навіть тисяч. Як вирішити цю задачу мінімальними зусиллями?
Наприклад, у вас сайт на WordPress, використовує БД MySQL і за кілька років уже накопичив тисячу статей. Правити контекстні посилання в кожній з статей буде довго, процес можна автоматизувати, використовуючи простий SQL-запит і функцію REPLACE.
Такий простий шаблон SQL-запит дозволяє за секунду скорегувати записи в базі. Запускати його можна прямо в PHPMyAdmin (більшість хостингів надають доступ до управління БД), або використовувати будь-яку іншу програму, що працює з вашою базою, в тому числі через консоль.
Консольні команди для заміни посилань в файлах
Якщо шаблони зберігаються в одній папці, то використовуйте perl, запускаючи його з потрібною директорії.
У разі, коли шаблони лежать не в одній папці, а відразу в декількох, то можна використовувати рекурсивний пошук-заміну наступною командою:
find. - type f -name "* .tpl" - exec sed -i '' -e 's / http: \ / \ / site. ru / https: \ / \ / site.ru / g ' <> \;
Команда знаходить спочатку все tpl-файли, а потім замінює в них рядки, спираючись на заданий регулярний вираз.
SEO-аналітик, консультант. Завжди в курсі нових тенденцій на ринку SEO.
вітання
не все так просто. безліч плагінів (і шорткодов) того ж WP використовують сериализацию, а не JSON -кодування. в результаті автозаміни грохнути все настройки якщо довжина старого домену відрізняється від довжини нового
з WP треба замінити wp_options поля з option_name siteurl і home на новий домен. після цього зайти в адмінку, в налаштування постійних посилань і натиснути на кнопку "зберегти".
це не вирішить усіх проблем, але в більшості випадків сильно допоможе
так само існують плагіни які допомагають виконати коррекную міграцію БД включаючи перезбирання серіалізорованних даних
Саме з JSON проблем не буде. тільки якщо серіалізірованіе використовували