1. Начало
  2. WordPress
  3. Администриране и грижа за WordPress сайта
  4. Ръчна промяна на URL адреса (домейна) на WordPress сайт

Ръчна промяна на URL адреса (домейна) на WordPress сайт

Преди да преминете към промяна на URL адреса на вашия WordPress сайт, трябва да имате предвид как и къде точно е записан той в базата данни. Така ще можете да прецените дали искате промяната да се извърши автоматично, или вие собственоръчно ще промените адреса в настройките и базата данни на WordPress.

При автоматичната промяна на адреса, през WordPress Manager by SuperHosting, можете, само с няколко клика, да смените адреса. Например:
от http://myoldsite.com » http://mysupersite.bg
от http://mysitename.com/blog » http://blog.mysitename.com
от http://mysupersite.com » https://mysupersite.com

Тази инструкция е само за промяна на URL адреса в WordPress и базата данни. Тук не са описани стъпки за преместване на файловете и базата данни на WordPress сайт. В случай че искате да преместите целия сайт в друг/нов хостинг акаунт, вижте още:
Преместване на WordPress от един хостинг акаунт в друг | Help
Преместване на сайт от Blogger или wordpress.com | Help

Как и къде се записва URL адресът на сайта в WordPress?

В таблица wp_options

Записи в базата данни, съдържащи url адреса на WordPress сайта

Стандартно WordPress записва URL адреса на сайта в базата данни, в две определени таблици. За основната настройка на адреса, информацията се записва в таблица wp_options, с опциите „home“ и „siteurl„. Тези две опции се визуализират в административния панел -> Настройки, с имена „WordPress Адрес (URL)“ и „Адрес на сайта (URL)„.

WordPress Адрес (URL) – адрес, на който реално се намират системните файлове на WordPress, например http://mysuperblog.com/wordpress;
Адрес на сайта (URL) – адрес на сайта, така както искате да се изписва в уеб браузъра, например http://mysuperblog.com;

Промяна на тези два записа може да се извърши или през админ панела -> Настройки или директно с редакция в базата данни.

В таблица wp_posts

За всяка една страница, публикация и файл, системата WordPress създава и ползва уникален адрес, който се записва в таблица wp_posts, в колона GIUD.

Уникални адреси в WordPress
Уникални адреси в WordPress.

Какво е GUID?

GUID (Globally Unique Identifier) е съкращение за глобално уникален идентификатор. Обикновено идентификаторите съдържат стринг с букви и цифри, например B42964FF като предназначението на всеки идентификатор е да гарантира уникалност на данните, свързани с този индекс.

Как WordPress използва GUID?

WordPress използва GUID, когато генерира своите RSS (и Atom) емисии и те съдържат маркера <guid></guid>:

<guid isPermaLink = "false"> https://domain.com/?p=1234 </guid>

Вместо да генерира код за GUID, WordPress използва реалния URL адрес на публикацията като GUID. Може би сте забелязали, че когато запазвате публикация и въведете съществуващ slug (технологично име), WordPress добавя цифра като суфикс за да осигури уникалност на URL адреса в цялата база данни. Именно затова изборът на URL за GUID е едно много интелигентно решение.

Тези адреси не се променят, съдържат името на домейна и служат за глобален идентификатор на дадения елемент.

WordPress различава отделните статии, страници и други пост елементи по този уникален адрес. Той не се променя дори при редакция на url адреса на страницата.

Ако редактираме статия, с уникален адрес http://mysuperblog.com/?p=1, и ѝ променим уеб адреса, например от /this-is-old-post.html на /this-is-new-post.html, за обикновения потребител и търсачките това ще изглежда като съвсем друга страница. За WordPress и RSS четците обаче, това ще е същата страница, защото уникалният ѝ идентификатор, пазещ се в базата данни в guid колоната, не се е променил (http://mysuperblog.com/?p=1).

Когато са активирани „хубавите“ адреси, при достъп до уникалния идентификатор, WordPress ще направи автоматично пренасочване към уеб адреса на страницата.
http://mysuperblog.com/?p=1 -> http://mysuperblog.com/this-is-new-post.html

Уникалните идентификатори се ползват основно от четците на RSS новини, за да различават коя статия вече е свалена и коя е нова.

Важно: Промяна на записите в колона GUID е силно непрепоръчително, най-малкото след промяната им, всички потребители, абонирани за RSS новите, ще получат наново всички съобщения. При промяна на URL адреса на сайта, промяна на записите в GUID не се препоръчва. Все пак, ако промяната е наложителна, може да се извърши с редакция на данните в базата данни.

Сериализирани данни в базата данни

Когато url адресът на сайта е записан като обикновен текст в базата данни, промяната му може да се извърши, като само се смени стария с новия адрес. Когато обаче адресът е записан в сериализирани данни, само смяна на текста ще доведе до проблемна работа на зависимия плъгин, джаджа или тема.

Сериализацията е метод за съхранение на обекти, така че да може да се запазят заедно с параметрите им. При PHP системите информацията се преобразува в/от сериализирани данни чрез функциите на PHP serialize() и deserialze(). По този начин информацията се записва в базата данни във вид, в който PHP ще може да разбере и обработи. Този начин за съхранение на данни в базата данни се използва от самия WordPress, от плъгини, теми, джаджи и други.

В зависимост от функциите на даден плъгин, той може да си записва URL адреса на сайта в базата данни. Често може да се видят записи от плъгини в таблиците wp_options, wp_postmeta и много други. Когато плъгините записват адреса обаче, той най-често е съпроводен с някакви параметри, използвани от самия плъгин.

В тези случаи записите в базата данни имат подобен вид:

a:1:{s:14:“wordpress.home“;s:22:“http://mysuperblog.com“;}

a:2:{i:0;s:0:““;s:1:“x“;s:39:“http://mysuperblog.com/images/image.png“;}

Тези записи съдържат сериализирани данни, което означава, че при промяна на броя символи в URL адреса, ще трябва да се промени и предхождащия го параметър (s:xx:).

Ако адресът се променя например от http://mysuperblog.com на http://mynewsitename.com, последната част в посочените записи ще трябва да се промени от:

s:22:„http://mysuperblog.com“

s:39:„http://mysuperblog.com/images/image.png“

на:

s:24:„http://mynewsitename.com“

s:41:„http://mynewsitename.com/images/image.png“

Ако само се замени стария (mysuperblog.com) с новия домейн (mynewsitename.com), плъгинът, който ползва тези записи, ще спре да функционира коректно/изобщо.

По принцип на един нов WordPress сайт е напълно възможно, безпроблемно, да се промени адресът само с промяна на настройките през администрацията.

Когато обаче сайтът не е нов, вероятността да има инсталирани множество плъгини и извършени много настройки, е голяма. И промяната на адреса му неизбежно ще включва и работа със записите в базата данни.

Важно: Когато се променя URL адреса на сайта, промяната на записите със сериализирани данни е необходима. Това може да се извърши чрез редакция на данните в базата данни.

Промяна на URL адреса в базата данни

Има няколко начина, чрез които можете да извършите смяната на стария, с новия адрес в базата данни. Тук ще видите само начините, които включват обработката и на сериализираните данни. Начинът чрез SQL заявка, за търсене и замяна на текста в цялата базата данни, ще бъде пропуснат. Както и другия начин – сваляне на SQL файл с информацията от базата данни и замяната на адреса в него. Към момента съществуват други, малко по-автоматични и надеждни начини, за да се извърши промяната коректно.

Важно: Смяна на адреса, чрез търсене и замяна в цялата база данни, може да доведе до повреждане на записите със сериализирани данни. Това от своя страна, ще се отрази на плъгините или джаджите, които ползват тези записи и може да спрат да функционират коректно.

WP-CLI

Промяната на адреса в базата данни може да се извърши изключително бързо, лесно и коректно, с инструмента WP-CLI.

Примерна команда за WP-CLI, чрез която може да се смени адресът, като записите в колоната guid ще бъдат пропуснати:

wp search-replace ‘myblog.com’ ‘superblog.com’ –skip-columns=guid

Ако използвате системно инсталирания WP-CLI в хостинг акаунта, тогава командата ще изглежда така:

wp-cli search-replace ‘myblog.com’ ‘superblog.com’ –skip-columns=guid

Командата ще обработи и сериализираните данни в базата данни.

В командата search-replace на WP-CLI се използват възможностите на следния инструмент: Search-Replace-DB.

Плъгин

Промяна на данни в базата данни може да се извърши и през плъгин за WordPress. Ето няколко примерни плъгина: Better Search Replace, Search & Replace и WP Migrate DB.

Тези плъгини поддържат важната функционалност за обработка на сериализираните данни.

Промяна на URL адреса чрез конфигурационен файл

Посочените начини по-долу за промяна на адреса, няма да променят всички записи в базата данни, поради това не са препоръчителни. Въпреки това, можете да ги ползвате например за бърза, но временна промяна на адреса.

Файл wp-config.php

В конфигурационния файл на системата (wp-config.php) може да се зададе ръчно адреса на сайта. Например:

define('WP_HOME','http://mysupersite.com');
define('WP_SITEURL','http://mysupersite.com');

http://mysupersite.com – заменете с адреса на сайта;

Този начин за задаване на адреса е подходящ, ако сайтът е съвсем нов и в базата му данни все още няма други записи с адреса. При използване на този начин за задаване на адреса, съответните опции ще бъдат деактивирани в админ панела -> Настройки.

Файл functions.php

Файлът functions.php се ползва от темата на сайта. В него можете да добавите два реда, точно след отварящия PHP таг <?php:

update_option( 'siteurl', 'http://mysupersite.com' );
update_option( 'home', 'http://mysupersite.com' );

http://mysupersite.com – заменете с адреса на сайта;

След като запишете файла и заредите сайта, записите в таблица wp_option (siteurl и home) ще се презапишат. Този начин за задаване на адреса няма да обнови останалите записи в базата данни.

Обновена: 09.06.2022

Беше ли Ви полезна тази статия?

Вижте още