Возможно ли использовать относительный или динамический URL сайта?

27 февр. 2015 г., 02:20:43
Просмотры: 16.7K
Голосов: 6

У меня есть локальная установка WordPress на Xampp, которую я использую как своего рода интранет для коллег. Мне нужно, чтобы они могли получить к ней доступ через наш локальный роутер — я обнаружил, что мне нужно изменить URL сайта и ссылки с http://localhost:8080 на мой IP http://192.168.x.xx:8080, чтобы изображения и CSS отображались.

Однако я столкнулся с проблемой: при подключении к другому роутеру или моему портативному роутеру IP-адрес меняется, и сайт перестает работать в локальной сети. Мне не хочется каждый раз вручную менять адрес сайта при смене компьютера или сервера.

Вопрос: Мне очень интересно, есть ли способ сделать URL сайта динамическим, чтобы он автоматически подстраивался под текущий IP или имя компьютера. Или, возможно, я ищу не то решение.

Я уже много искал в интернете, но, кажется, проблема в том, что я не знаю, какие именно термины использовать для поиска — или существует лучшее решение. Надеюсь, кто-то подскажет правильный путь.

- На основе поиска я попробовал несколько плагинов, например "Relative URLs" и "Root relative URLS", но они не помогли. - Я также настроил статический IP-адрес на портативном роутере, но проблема остается, так как при смене компьютера нужно менять IP в настройках сайта. - Я также пробовал добавить это в wp-config:

<?php
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
// добавляем следующую строку, если WordPress установлен в подкаталоге
define('WP_SITEURL', WP_HOME . '/wordpress');
2
Комментарии

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

Tom J Nowell Tom J Nowell
27 февр. 2015 г. 03:03:52

Спасибо за совет, начну изучать этот вопрос.

Taberkinslaw Taberkinslaw
27 февр. 2015 г. 04:46:40
Все ответы на вопрос 2
1
16

Обычно я просто избегаю этой проблемы каждый раз, когда создаю новый сайт на WordPress:

define('WP_HOME', '/');
define('WP_SITEURL', '/');

Это заставит WordPress использовать относительные URL-адреса от корня для всего. Делает миграцию сайта на другие домены гораздо проще. Конечно, если вы обращаетесь к своему сайту через папку (например, "http://<домен>/blog"), вы можете изменить их на:

define('WP_HOME', '/blog/');
define('WP_SITEURL', '/blog/');

Для существующих сайтов убедитесь, что база данных и любые файлы тем/плагинов не содержат абсолютных URL-адресов, сгенерированных WordPress с использованием старых значений WP_HOME и WP_SITEURL.

РЕДАКТИРОВАНО: для ясности, вы добавляете эти определения в ваш wp-config.php.

19 февр. 2016 г. 23:12:44
Комментарии

Не должен ли это быть принятым ответом?

Alexander Presber Alexander Presber
9 мар. 2018 г. 18:53:16
1

Если у кого-то похожая ситуация, я нашел решение, добавив:

/* На этом всё, прекращаем редактирование! Приятного ведения блога. */
/** Абсолютный путь к директории WordPress. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/* ЭТО ПОЛЬЗОВАТЕЛЬСКИЙ КОД, СОЗДАННЫЙ В ZEROFRACTAL ДЛЯ ДИНАМИЧЕСКОГО ДОСТУПА К САЙТУ */
$currenthost = "http://".$_SERVER['HTTP_HOST'];
$currentpath = preg_replace('@/+$@','',dirname($_SERVER['SCRIPT_NAME']));
$currentpath = preg_replace('/\/wp.+/','',$currentpath);
define('WP_HOME',$currenthost.$currentpath);
define('WP_SITEURL',$currenthost.$currentpath);
define('WP_CONTENT_URL', $currenthost.$currentpath.'/wp-content');
define('WP_PLUGIN_URL', $currenthost.$currentpath.'/wp-content/plugins');
define('DOMAIN_CURRENT_SITE', $currenthost.$currentpath );
@define('ADMIN_COOKIE_PATH', './');

В файл wp-config.php Я нашел это решение на сайте: http://davidmregister.com/dynamic-wp-siteurl/

Спасибо всем!

1 мар. 2015 г. 01:24:48
Комментарии

Подтверждаю, работает отлично!

crusaderky crusaderky
18 мар. 2017 г. 20:01:19