Как изменить URL в Multisite?

2 февр. 2019 г., 12:51:47
Просмотры: 25.2K
Голосов: 9

Ссылки в меню навигации (Мои сайты > Управление сетью) указывают (и продолжают перенаправлять) на неправильные URL-адреса.

Неправильные URL-адреса имеют следующий шаблон:

https://https//www.domain.com/wp-admin/network/
https://https//www.domain.com/wp-admin/network/sites.php
https://https//www.domain.com/wp-admin/network/settings.php

Даже если я вручную ввожу правильный URL без повторяющегося https, меня снова перенаправляет на неправильный URL.

Похоже, что где-то установлено значение https//www вместо https://www, но я не могу найти где.

Места, которые я проверил, и они были в порядке:

  • wp-config.php (DOMAIN_CURRENT_SITE)
  • .htaccess
  • таблица site (только домен, с www но без https или /)
  • таблица options (siteurl и home)
  • таблица sitemeta

Я не обновлял ничего из вышеперечисленного. Они были в порядке. (Так что это не проблема с кэшем)

Я попробовал использовать функцию поиска в phpMyAdmin с запросом https//www, но не получил никаких совпадений.

Где еще стоит искать?

0
Все ответы на вопрос 6
1
12

Необходимо изменить 5 значений. Из базы данных.

wp_options: параметры с названиями "siteurl" и "home"

wp_site

wp_sitemeta: параметр с названием "siteurl"

wp_blogs: все записи в колонке "domains", содержащие старое имя домена

wp_#_options: Каждый подсайт имеет наборы таблиц, соответствующие blog_id в таблице wp_blogs. Вам нужно перейти в таблицу wp_#_options, где # соответствует blog_id, и обновить настройки "siteurl" и "home" в этой таблице.

Примечание: В большинстве случаев вам может/придется обновить запись в файле WP-Config.php. Вот фрагмент кода, который я рекомендую просмотреть:

define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'mysite.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
11 апр. 2019 г. 16:33:24
Комментарии

Ах, таблица wp_blogs. Я знал, что что-то упускаю. Спасибо.

tobybot tobybot
24 сент. 2021 г. 22:10:32
1

URL-адреса многосайтовой сети доступны для редактирования в разделе "Администрирование сети" → "Сайты", затем редактируйте подсайты (нажмите на ссылку редактирования подсайта, затем перейдите на вкладку "Настройки"). Это возможно только для подсайтов.

Значения 'siteurl' и 'home' должны содержать полный URL сайта, включая протокол, например: https://www.example.com/site1. Если эти значения не включают протокол (часть 'https://'), то любые ссылки на сайте будут содержать "двойной протокол", с чем вы и столкнулись.

URL главного сайта нельзя отредактировать на этом экране; для его изменения необходимо внести правки напрямую в таблицу wp-options (в двух местах).

Я никогда не изменяю URL сайтов в файле wp-config.php, как предлагают некоторые ответы и комментарии. Правильное место (по моему мнению) для настройки URL сайта — таблица wp-options (для главного сайта), а для подсайтов — процедура, описанная выше.

Обратите внимание, что описанная процедура также позволяет исправить любые некорректные URL, сохранённые плагинами, которые записывают данные в таблицу options. Мне несколько раз приходилось это делать при переносе сайта на новый домен.

2 февр. 2019 г. 20:04:35
Комментарии

Спасибо за подробный ответ. Я перепроверил таблицу wp-options, и оба поля содержат полный URL с протоколом HTTPS. Я также пробовал изменить его на HTTP, но проблема с двойным протоколом по-прежнему сохраняется.

Abdulrahman Hassoun Abdulrahman Hassoun
3 февр. 2019 г. 13:53:28
0

Вам нужно внести изменения в двух местах:

1- В базе данных, в таблице wp_blogs, измените example.com на www.example.com

2- В файле wp-config.php измените define('DOMAIN_CURRENT_SITE', 'example.com'); на define('DOMAIN_CURRENT_SITE', 'www.example.com');

После этого всё заработает автоматически.

26 февр. 2020 г. 21:08:55
1

Вы проверили таблицу wp_blogs? Всё ли в порядке?

Также убедитесь, что все предопределённые константы в вашем файле wp-config.php закомментированы. В противном случае они переопределят настройки базы данных.

2 февр. 2019 г. 13:12:22
Комментарии

Спасибо за ответ. Я только что проверил таблицу блогов, все в порядке. Домен указан как www.domain.com, без http или https. Пути также указаны правильно. Константы не закомментированы и все корректно.

Abdulrahman Hassoun Abdulrahman Hassoun
2 февр. 2019 г. 14:04:59
3

Добавьте этот код в ваш файл wp-config.php,

define('WP_HOME','https://вашсайт.com');
define('WP_SITEURL','https://вашсайт.com');

Если проблема сохраняется, войдите в ваш phpMyAdmin и затем,

  • Выберите название базы данных из левой боковой панели и откройте таблицу wp_options.
  • Найдите строки с URL сайта и домашней страницей, нажмите "Изменить" для редактирования URL. Вы увидите поле перед option_value для ввода URL.
  • Нажмите кнопку Перейти для сохранения настроек.

Также убедитесь, что ваш URL начинается с https://, а не с http// (как вы упомянули выше)

2 февр. 2019 г. 13:13:30
Комментарии

Спасибо за ваш ответ. Все шаги, упомянутые выше, уже были выполнены ранее.

Abdulrahman Hassoun Abdulrahman Hassoun
2 февр. 2019 г. 14:02:28

Можете попробовать добавить указанный выше код и проверить?

Arvind Singh Arvind Singh
2 февр. 2019 г. 14:27:08

Добавил. Результат тот же. Теперь в моем wp-config есть WP_HOME, WP_SITEURL и DOMAIN_CURRENT_SITE. Все три указывают на правильный, полный HTTPS URL.

Abdulrahman Hassoun Abdulrahman Hassoun
3 февр. 2019 г. 13:54:59
0

Просто измените это в phpmyadmin в таблице "префикс"_options значения siteurl и homeurl в колонке option_name

26 окт. 2020 г. 18:25:47