Задать вопрос
@HrabraHuya

Как решить проблему ссылок при переносе WP на локальный пк?

День добрый!
------------------------Небольшое лирическое отступление-------------------------
Тема проблемы ссылок при переносе WP уже давно избита, и казалось бы, зачем ещё одна?
Но нет. Перерыв все форумы по данному направлению конкретного решения такого простого вопроса вы, к сожалению, не найдете. А найдете лишь стандартную переписку, где мега-программисты упрекают нубов в том, что они нубы, так и не ответив на вопрос. Вопрос явно популярен и актуален, и надеюсь, данный топик станет, наконец, чётким ответом и поможет многим людям, осваивающим ВП.
--------------------------------------Суть проблемы------------------------------------
1. Был сайт на ВП, расположенный на домене.
2. Я перенёс его на локалку (XAMPP)
- залил файлы
- Перенёс и подключил БД
3. Настроил в разделе Настройки -> Общие -> Адрес WordPress (URL) и Адрес сайта (URL)
прописал localhost/baza/iq/wordpress (папка, где хранится сайт)
По самой базе (перед загрузкой) также произвёл замену домена на данную строку.
ВОЗНИКАЕТ СЛЕДУЮЩАЯ ПРОБЛЕМА:
Сайт заработал, все глобальные ссылки заменились и работают адекватно,
однако все места где на страницах есть локальные ссылки типа
<a href="/">Главная</a>
или типа:
<a href="/main">Главная</a>

При нажатии ведут не на localhost/baza/iq/wordpress/main (как прописано мной в настройках)
а по адресу: localhost/main Куда он девает кусок baza/iq/wordpress/ - остаётся загадкой.
По этой же причине сайт не видит картинки и css.

По советам на форумах прописывал в wp-config такую штуку:
define('WP_SITEURL', 'localhost/baza/iq/wordpress');
define('WP_HOME', 'localhost/baza/iq/wordpress');

не помогает.
И такую:
define('WP_HOME',  "http://{$_SERVER['HTTP_HOST']}");
define('WP_SITEURL', "http://{$_SERVER['HTTP_HOST']}");

и такую:
define('WP_SITEURL', '/');
define('WP_HOME', '/');

всё бесполезно, результат тот же.
Тоесть в БД все ссылки заменены. В админке указан точный локальный адрес.
Но локальные ссылки "/" ведут в корень локалки игнорируя указанный путь. Что посоветуете?

Натыкался ещё на предложения людей поковыряться в .htaccess, но что конкретно там писать - ни кто не написал.
Заранее спасибо за ответы.
  • Вопрос задан
  • 784 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Куда он девает кусок baza/iq/wordpress/ - остаётся загадкой.

Вы считаете, что полную ссылку, из относительной, генерирует Wordpress. Это не так.
Полную ссылку генерирует браузер. И он знать не знает про Адрес WordPress (URL) и Адрес сайта (URL). Корнем для браузера является домен (localhost в Вашем случае). Потому и полную ссылку генерирует относительно домена.

Если браузер встретит на странице ссылку вида "./", то он сгенерирует ссылку относительно текущей страницы.

Что посоветуете?

Писать полные ссылки, либо размещать (или переконфигурировать веб-сервер) Wordpress так, чтобы он лежал в корне домена.

Еще можете использовать такую конструкцию
<a href="<?php echo site_url(); ?>">Главная</a> в качестве ссылки на главную, относительные же будут выглядеть
<a href="<?php echo site_url(); ?>/main">Главная</a>

Но тут я не уверен, WP давно не крутил.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы