Про перенесення WP-блоґу на інший хостинг, utf-8 та latin1

Нещодавно в мене з’явилася ідея щодо переносу блоґу на інший хостинг. Першим ділом я взявся читати статтю про аналогічний “переїзд” Блоґорідера. А оскільки мій блоґ наразі також знаходиться на TOPUA, то проблеми в нас так само мають бути аналогічними (а саме проблема з latin1).

Та перед тим, як купувати хостинг, я вирішив проробити всю процедуру на локальному веб-сервері (я юзаю XAMPP) для того, щоб перевірити, чи все я правильно зрозумів і які підводні камені можуть стати на дорозі.

Для початку я зробив дамп бази даних через інтерфейс phpMyAdmin, а також архів кореневого каталогу з допомогою cPanel. Потім відкрив дамп в Notepad++, змінив кодування з CP1251 на utf-8 і замінив всі значення “latin1″ на “utf-8″, таким чином при імпорті дампу всі таблиці створювались з Юнікодом, як кодуванням за умовчуванням:

CREATE TABLE `table` (
...
) ENGINE=MyISAM ... DEFAULT CHARSET=utf8 ;

Після імпорту дампу і розпаковки кореневого каталогу я додав у файл wp-config.php рядок

define('DB_CHARSET', 'utf8');

Насамкінець я виконав кілька SQL-запитів для того, щоб блоґ нормально працював на новому домені:


UPDATE wp_options SET option_value = replace(option_value, 'http://fireon.org.ua', 'http://localhost/fireonblog') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://fireon.org.ua','http://localhost/fireonblog');

UPDATE wp_posts SET post_content = replace(post_content, 'http://fireon.org.ua', 'http://localhost/fireonblog');

Після чого все запрацювало! От тут і виникає питання: може я чогось не вкурив, але чому у мене все пройшло так просто, а hellveen та Роланд Чанішвілі вручну конвертували всі поля з кириличним тестом з latin1 в BLOB, а потім в utf-8?

UPD!!!

Як виявилося, запрацювало не все, а лише головна сторінка – при переході на всі внутрішні лінки вискакує помилка 404. Наразі шукаю вирішення…

UPD!!!
Рішення знайшов. Як виявилось. проблема була в тому, що перенесений на локальний сервер блоґ знаходився не в кореневому каталозі, а в підкаталозі “/fireonblog” (що при переносі на реальний хостинг не повинно відбутися). Отже треба було видозмінити файл .htaccess наступним чином:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /fireonblog/index.php [L]

# END WordPress

(Підглянув на Perishable Press)

Коментарів: 16 Posted in Інтернет, Блоґінг
Tagged , ,

16 Comments

  1. Налаштуй структуру посилань і глянь чи є в тебе файл .htaccess з необхідними правами.. В мене ця проблема вирішувалась після того як я заливав .htaccess в корінь блогу та давав йому чмоди 777..

  2. Да, я кстати также заметил проблему с кодировками при переносе. Полезно!

  3. Додай у файл .htaccess текст, який ти можеш знайти в розділі Settings>Permalinks.

  4. Теж саме що просто дати чмоди.. Майже те саме..)

  5. Дякую всім, хто допомагав :-)

  6. То помилку виправлено?

  7. так ти вже здійснив переїзд?
    бо я теж хочу переїхати але ніяк не можу змінити днси в акаунті по емейлу

  8. Ні, поки-що я тестував переїзд тільки на локальному веб-сервері (для того, щоб розібратись у проблемі з кодуваннями).

  9. А куди будеш переходити і чому?

  10. А куди будеш переходити і чому?

    це ти в кого спитав?

  11. У FireON’a

  12. При переносі сайту користувався Sypex Dumper Lite 1.0.8, проблеми з кодуванням самі вирішились…

  13. Все так складно. В мене взагалі ніяких проблем не було. Експортував базу через контрол панель на новому хості імпортував через пшпмініадмін

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

Leave a Reply

Using Gravatars in the comments - get your own and be recognized!

XHTML: These are some of the tags you can use: <a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>