WordPress неправильно перенаправляет на локальный IP-адрес?
Я настроил сервер WordPress на Raspberry Pi с использованием PHP, MySQL и Apache. У меня есть динамический DNS-хост, и я настроил переадресацию портов на роутере.
При попытке доступа к серверу извне локальной сети (например, с телефона через 4G или из школы), когда я ввожу свой динамический DNS-хост, сайт неправильно перенаправляет на локальный IP-адрес сервера: 192.168.0.18, из-за чего страница не загружается.
Это странно, потому что у меня также настроен owncloud на этом же Pi, и при тех же условиях, когда я пытаюсь получить доступ к mydynamicdnshost/owncloud, перенаправления на локальный IP не происходит, и страница успешно загружается.
Я понимаю, что это базовая проблема с настройкой WordPress, но никак не могу её исправить. Если кто-то знает решение, пожалуйста, ответьте на мой вопрос. Большое спасибо!
Изменение URL сайта в таблице Options.
UPDATE `wp_options` SET `option_value` = 'YOUR_SITE_URL' WHERE `option_name` = 'siteurl' OR `option_name` = 'home';
Также измените статические URL в содержимом ваших записей.
UPDATE `wp_posts` SET `post_content` = REPLACE(post_content, '192.168.0.18/YOUR_LOCAL_SITE_URL/', 'YOUR_SITE_URL/');
Не забудьте изменить префикс таблицы, если он не 'wp_'.
Примечание: Получите доступ к PHPMyAdmin вашего сервера. Обратитесь к вашему хостинг-провайдеру, если вы не знаете, как это сделать.
Выберите базу данных WordPress и откройте таблицу wp_options. Измените значения атрибутов 'siteurl' и 'home' на URL вашего рабочего сайта.
Нанять разработчика, если вы не уверены в своих действиях!

Извините, не могли бы вы подсказать, в каком файле находятся эти настройки? Я совсем новичок в этой области. Пытался найти их в wp-config.php и других файлах, но безуспешно.

Эти настройки также доступны на странице Настройки / Общие, как Адрес WordPress (URL) и Адрес сайта (URL). Эта страница Кодекса содержит дополнительную информацию. Но я не уверен, что этот ответ поможет; мне кажется, вам нужно обновить эти настройки на динамическое имя хоста, которое вы используете, а не на локальный адрес.

@GaborBarat Согласен, что подход, описанный на этой странице кодекса, лучше моего решения. Но если его реализовать неправильно, он будет изменять URL сайта и домашний URL в таблице options при каждом запросе.

Вдохновленный ответом @jitendra-rana, направление было верным, но не полным.
- Сделайте дамп вашей базы данных в файл.
- Откройте дамп-файл и замените все
http://192.168.0.18
наhttp://your_site
- Выполните дамп-файл, чтобы заменить все данные в базе данных.
- Очистите кеш (жесткую перезагрузку) вашего сайта.
Готово.

В целом, изменения записей WP_SITEURL и WP_HOME в таблице wp_option недостаточно для того, чтобы сделать весь сайт доступным. Необходимо изменить все ссылки, включая ссылки на изображения, ссылки на JS и CSS, теги A, и в целом любые ссылки, которые выводятся в HTML.
Я создал плагин и разместил его в репозитории WordPress, который публикует сайт, созданный на локальном веб-сервере, таком как Xampp/Wampp, в сеть. Установив собственный локальный IP-адрес в настройках плагина, ваш WordPress станет доступным в сети.
