Анналы page server pagename. Создание сети WordPress. Извлечение переменной окружения HTTP_X_FORWARDED_FOR

Из вашего комментария:

Привет Crayon спасибо за ваш ответ 1.yup мой клиент запросил для пользовательского имени страницы для всех страниц через сайт. Мы используем инструмент CMS для сайта над кодом, который жестко закодирован в главном шаблоне 2. да, я вызываю другую st() на загрузку страницы для захвата других событий, prop, evar.. 3. Если я передаю s.PageName = "abc.com:home" всякий раз, когда я вызываю другое st() PageName, получает захват в другой st(), чтобы уменьшить дублирование имени страницы. Я передаю ее как параметр. 4. Я также перекрестно проверил с другими инструментами отладки только в одном маяке, я передаю pagename

Хорошо, поэтому причина, по которой вы видите как значение pageName, так и URL-адрес в отчетах ваших страниц, состоит в том, что у вас есть два вызова st() , и только 1 из них имеет значение для s.pageName . Вы сказали, что pageName значение pageName чтобы не допустить, чтобы страница подсчитывалась дважды. Ну, это уже происходит, потому что вы используете два вызова st() . Поскольку вы не указываете имя pageName во втором, URL-адрес по умолчанию.

Идеальное решение состоит в том, чтобы перестроить ваш код, чтобы иметь только один вызов st() . Вы сказали, что работаете с CMS. Поэтому в идеале вы должны использовать s_code.js сценария в глобальном заголовке. то вы должны иметь один вызов st() в глобальном нижнем колонтитуле. Вы также можете поместить глобальные вары в раздел нижнего колонтитула (или в s_code.js > s_doPlugins). Затем между этими двумя является то, где вы бы поместили какой-либо специальный код на странице. Мне кажется, что вы уже делаете это... но вам просто нужно удалить первый вызов st() .

Если по какой-либо причине вы не можете достичь идеального решения, вместо этого вы должны использовать s.tl() для второго запроса. Чтобы использовать s.tl() , вы сделали бы что-то вроде этого:

S.prop1="foo"; s.eVar1="bar"; s.events="event1"; s.linkTrackVars="prop1,eVar1,events"; s.linkTrackEvents="event1"; s.tl(true,"o","description");

В принципе, любые реквизиты, eVars и события, которые вы хотите отслеживать в вызове s.tl , должны быть объявлены в linkTrackVars и linkTrackEvents .

ПРИМЕЧАНИЕ . Вы должны действительно стремиться к идеальному решению. Это не только отчет о страницах, который может завысить. Любые другие варны, которые вы установили, тоже будут завышены. Кроме того, платежная модель Adobe должна взимать плату за каждый отдельный запрос на свой сервер, поэтому вашему клиенту, вероятно, не понравится тот факт, что вы удваиваете свой счет, делая это.

Метод s.tl отнюдь не идеален, но лучше, чем вы сейчас делаете. поскольку это уменьшит инфляцию отчета, а запросы s.tl стоить меньше, чем запросы st .

Документация

Шаблон {{When pagename is }} предназначен для использования внутри других шаблонов. Он помогает другим шаблонам определить, на какой странице они выполняются. Шаблон проверяет на совпадение имя страницы по заданному образцу {{When on page }} .

Использование

Шаблон может обрабатывать более одного параметра. Большинство параметров не имеют определенного имени, поскольку их имена используются для введения образца поиска. Например:

{{When pagename is | /doc = Doc page text | other = Other pages text }}

Если шаблон включен на странице "Template:Example/doc" код выше вернет текст для страницы документации.

Doc page text

Если шаблон включен на другой странице, имя которой не содержит /doc, то код вернет текст для остальных страниц.

{{When pagename is | User:Example/test = Text for "User:Example/test". | User:Example = Text for "User:Example". | User talk:Example = Text for "User talk:Example". | User:Example/+ = Matches "User:Example" and "User:Example/test". | Example = Matches "User:Example", "User talk:Example", "Template:Example" and so on, but not "User:Example/something". | User:Example/* = Matches "User:Example/something", but not "User:Example". | User talk:Example/* = Matches "User talk:Example/something". | Example/* = Matches "User:Example/something" and "User talk:Example/something". | /something = Any pagename that ends in "/something". | /doc = Any pagename that ends in "/doc". | /some* = Any subpage name beginning with "/some" or "/Some". | /arch* = Matches "User talk:Example/Archive 1". | basepage = Text for any basepage. | subpage = Text for any subpage. | other = Text for any page. }}

Сравнение производится сверху вниз и возвращается тот вариант, в котором произошло совпадение. Под словами «сверху вниз» подразумевается порядок вариантов выше, а не порядок параметров передаваемых в шаблон. У шаблона нет ограничений на количество параметров, которые можно передать, кроме ограничений наложенных сервером и движком MediaWiki.

Большинство проверок не зависят от регистра букв. Однако вроде " /test " совпадет с "User:Example/test", но не из "User:Example/Test".

Проверка на совпадение с частью имени подстраницы, такой как " /some* " имеет некоторые ограничения. См. посвященный этому разделу ниже.

Дозволяется задавать пустое значение в параметре сравнения, при совпадении с образцом дальнейшее сравнение прекращается и шаблон возвращает пустую строку. Это может использоваться для следующих целей:

{{When pagename is | /doc = | /sandbox = Sandbox text | other = Other pages text }}

Код выше ничего не отобразит, если шаблон вызовется на странице /doc, но на странице /sandbox он вернет текст для страницы песочницы. А на других страницах отобразится:

Sandbox text

And when on any other page it will return this:

Other pages text

Частичные имена подстраниц

Также этот шаблон может сравнивать часть имени подстраницы. Например:

{{When pagename is | /archiv* = Archive page text | other = Other pages text }}

На странице "User:Example/Archive 1" код выше вернет текст для остальных страниц:

Archive page text

Название параметра образца сравнения " /some* " не должно содержать заглавных букв, но совпадение будет на подстранице содержать как большие, так и маленькие буквы, как "User:Example/SomeThing" и "User:Example/something".

Сопоставимая часть имени страницы в образце может содержать 4, 6 и 8 символов. Сравнение с "/some*", "/someth*" и "/somethin*" works, but using "/som*" или "/somet*" doesn"t work.

Сначала сравниваются длинные образцы, например если заданы оба образца "somethin*" и "/some*", и текущая станица называется "User:Example/Something", то шаблон вернет то, что задано в параметре"/somethin*".

Параметр "page"

Для проверки и демонстрации работы шаблон обрабатывает параметр page. Например:

{{When pagename is | /test = Test pages text | other = Other pages text | page = Template:Example/test }}

No matter on what kind of page the code above is used it will return this:

Test pages text

The page parameter makes this template behave exactly as if on that page. The pagename doesn"t have to be an existing page.

If the page parameter is empty or undefined, the name of the current page determines the result.

You can make it so your template also understands the page parameter. That means you can demonstrate the different appearances of your template in the documentation for your template. Then do like this:

{{When pagename is | /test = Test pages text | other = Other pages text | page = {{{page|}}} }}

Пространство имён соответствия

This template doesn"t have namespace matching. If you need that then combine this template with one of the namespace-detection templates such as {{When on template page }} . Like this:

{{When on template page | {{When pagename is | /doc = Template doc page text. }} | }}

Так на странице "User:Example/doc" код ничего не вернет, но на странице "Template:Example/doc" вернет:

Шаблон:When on template page

Технические подробности

Это шаблон определяет дополнительные страницы даже если он используется на страницах в пространстве имен, для которых запрещено создание дополнительных страниц. Таким образом, он все равно работает во всех пространствах имен.

См. также

Суперглобальный массив $_SERVER

Одним из важнейших предопределённых массивов является массив $_SERVER - в него PHP-интерпретатор помещает переменные, полученные от сервера. Без данных переменных сложно организовать полноценную поддержку Web-приложений. Ниже приводится описание наиболее важных элементов суперглобального массива $_SERVER.

Замечание

Просмотреть полный список элементов массива $_SERVER можно либо при помощи функции print_r(), которая распечатывает дамп массива либо при помощи функции phpinfo(), которая выводит информацию о PHP-интерпретаторе.

Элемент $_SERVER["DOCUMENT_ROOT"]

Элемент $_SERVER["DOCUMENT_ROOT"] содержит путь к корневой директории сервера, если скрипт выполняется в виртуальном хосте, в данном элементе указывается путь к корневой директории виртуального хоста. Т.е. в конфигурационном файле httpd.conf виртуальный хост имеет директиву DocumentRoot, которой присвоено значение "D:/main", элемент $_SERVER["DOCUMENT_ROOT"] будет содержать значение "D:main".

Элемент $_SERVER["HTTP_ACCEPT"]

В элементе $_SERVER["HTTP_ACCEPT"] описываются предпочтения клиента относительно типа документа. Содержимое этого элемента извлекается из HTTP-заголовка Accept, который присылает клиент серверу. Содержимое данного заголовка может выглядеть следующим образом

image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*

Заголовок Accept позволяет уточнить медиа-тип, который предпочитает получить клиент в ответ на свой запрос. Этот заголовок позволяет сообщить серверу, что ответ ограничен небольшим множеством предпочитаемых типов.

Символ * используется для группирования типов в медиа-ряду. К примеру, символом */* задается использование всех типов, а обозначение type/* определяет использование всех подтипов выбранного типа type.

Замечание

Медиа-типы отделяются друг от друга запятыми.

Каждый медиа-ряд характеризуется также дополнительным набором параметров. Одним из них является так называемый относительный коэффициент предпочтения q, который принимает значения от 0 до 1, соответственно, от менее предпочитаемых типов к более предпочитаемым. Использование нескольких параметров q, позволяет клиенту сообщить серверу относительную степень предпочтения для того или иного медиа-типа.

Замечание

По умолчанию параметр q принимает значение 1. Кроме того, от медиа-типа он отделяется точкой с запятой.

Пример заголовка типа Accept:

Accept: audio/*; q=0.2, audio/basic

В данном заголовке первым идёт тип audio/* включающий в себя все музыкальные документы и характеризующийся коэффициентом предпочтения 0.2. Через запятую указан тип audio/basic, для которого коэффициент предпочтения не указан и принимает значение по умолчанию равное единице. Цитируя RFС2616 данный заголовок можно интерпретировать следующим образом: “Я предпочитаю тип audio/basic, но мне можно также слать документы любого другого audio-типа, если они будут доступны, после снижения коэффициента предпочтения более чем на 80 %”.

Пример может быть более сложным.

Accept: text/plain; q=0.5, text/html,
text/x-dvi; q=0.8, text/x-c

Замечание

Следует учитывать, что элемент $_SERVER["HTTP_ACCEPT"] содержит точно такую же информацию, но без начального заголовка Accept.

Этот заголовок интерпретируется следующим образом: Типы документов text/html и text/x-c являются предпочтительными, но если они недоступны, тогда клиент отсылающий данный запрос, предпочтёт text/x-dvi, а, если и его нет, то он может принять тип text/plain.

Элемент $_SERVER["HTTP_ACCEPT_LANGUAGE"]

В элементе $_SERVER["HTTP_ACCEPT_LANGUAGE"] описываются предпочтения клиента относительно языка. Данная информация извлекается из HTTP-заголовка Accept-Language, который присылает клиент серверу. Можно привести следующий пример:

Accept-Language: ru, en; q=0.7

Который можно интерпретировать следующим образом: клиент предпочитает русский язык, но в случае его отсутствия согласен принимать документы на английском. Элемент $_SERVER["HTTP_ACCEPT_LANGUAGE"] будет содержать точно такую же информацию, но без заголовка Accept-Language:

ru, en; q=0.7

Содержимое элемента $_SERVER["HTTP_ACCEPT_LANGUAGE"] можно использовать для определения национальной принадлежность посетителей. Однако результаты будут приблизительными, так как многие пользователи используют английские варианты браузеров, которые будут извещать сервер о том, что посетитель предпочитает лишь один язык - английский.

Элемент $_SERVER["HTTP_HOST"]

В элементе $_SERVER["HTTP_HOST"] содержится имя сервера, которое, как правило, совпадает с доменным именем сайта, расположенного на сервере. Как правило, имя, указанное в данном параметре совпадает с именем $_SERVER["SERVER_NAME"]. В параметре приводится лишь доменное имя без названия протокола (http://), т.е.

www.sofftime.ru

Элемент $_SERVER["HTTP_REFERER"]

В элементе $_SERVER["HTTP_REFERER"] приводится адрес страницы, с которой посетитель пришёл на данную страницу. Переход должен осуществляться по ссылке. Создадим две страницы index.php и page.php.

Страница index.php

echo "Ссылка на страницу PHP
"
;
echo .
$_SERVER [ "HTTP_REFERER" ]
?>

Страница page.php будет аналогичного содержания, но ссылка будет указывать на страницу index.php.

Страница page.php

echo "Ссылка на страницу PHP
"
;
echo "Содержимое $_SERVER["HTTP_REFERER"] - " .
$_SERVER [ "HTTP_REFERER" ]
?>

При переходе с одной страницы на другую, под ссылкой будет выводится адрес страницы, с которой был осуществлён переход.

Элемент $_SERVER["HTTP_USER_AGENT"]

Элемент $_SERVER["HTTP_USER_AGENT"] содержит информацию о типе и версии браузера и операционной системы посетителя.

Вот типичное содержание этой строки: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)". Наличие подстроки "MSIE 6.0" говорит о том, что посетитель просматривает страницу при помощи Internet Explorer версии 6.0. Строка "Windows NT 5.1" сообщает, что в качестве операционной системы используется Windows XP.

Замечание

Для Windows 2000 элемент $_SERVER["HTTP_USER_AGENT"] выглядит следующим образом: "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)")", в то время как для Windows XP - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)".

Если посетитель воспользуется браузером Opera, то содержание $_SERVER["HTTP_USER_AGENT"]может выглядеть следующим образом: "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98) Opera 6.04 ". Подстрока "MSIE 6.0" здесь так же присутствует, сообщая, что браузер Opera является совместимым с браузером Internet Explorer и использует те же динамические библиотеки Windows. Поэтому, при анализе строки, возвращаемой браузером, следует иметь в виду, что к Internet Explorer относится строка, содержащая подстроку "MSIE 6.0" и не содержащая подстроки "Opera". Кроме того, из данной строки можно заключить, что пользователь использует операционную систему Windows 98.

Замечание

Пользовательский агент браузера Firefox может выглядеть следующим образом Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5.

При использовании браузера Netscape, содержание элемент $_SERVER["HTTP_USER_AGENT"] может выглядеть следующим образом: "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1". Принадлежность к этому браузеру можно определить по наличию подстроки "Netscape". Кроме того, можно узнать, что посетитель выходит в Интернет, используя операционную версию Linux, с ядром, оптимизированным под Pentium IV, находясь в графической оболочке X-Window. Этот механизм удобно использовать для сбора статистической информации, которая позволяет дизайнерам оптимизировать страницы под наиболее распространенные браузеры.

Элемент $_SERVER["REMOTE_ADDR"]

В элемент $_SERVER["REMOTE_ADDR"] помещается IP-адрес клиента. При тестировании на локальной машине - этот адрес будет равен 127.0.0.1. Однако при тестировании в сети переменная вернёт IP-адрес клиента или последнего прокси-сервера через который клиент попал на сервер. Если клиент использует прокси-сервер узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR, значение которой можно получить при помощи функции getenv().

Замечание

Прокси-сервера являются специальными промежуточными серверами, предоставляющими специальный вид услуг: сжатие трафика, кодирование данных, адаптация под мобильные устройства и т.п. Среди множества прокси-серверов различают так называемые анонимные прокси-сервера, которые позволяют скрывать истинный IP-адрес клиента, такие сервера не возвращают переменной окружения HTTP_X_FORWARDED_FOR.

Извлечение переменной окружения HTTP_X_FORWARDED_FOR

echo getenv (HTTP_X_FORWARDED_FOR );
?>

Элемент $_SERVER["SCRIPT_FILENAME"]

В элемент $_SERVER["SCRIPT_FILENAME"] помещается абсолютный путь к файлу от корня диска. Так, если сервер работает под управлением операционной системы Windows, то такой путь может выглядеть следующим образом "d:main estindex.php", т.е. путь указывается от диска, в UNIX-подобной операционной системы путь указывается от корневой директории /, например "/var/share/www/test/index.php".

Элемент $_SERVER["SERVER_NAME"]

В элемент $_SERVER["SERVER_NAME"] помещается имя сервера, как правило, совпадающее с доменным именем сайта, расположенного на нём. Например,

www.softtime.ru

Содержимое элемента $_SERVER["SERVER_NAME"] часто совпадает с содержимым элемента $_SERVER["HTTP_HOST"]. Помимо имени сервера суперглобальный массив $_SERVER позволяет выяснить ещё ряд параметров сервера, например IP-адрес сервера, прослушиваемый порт, какой Web-сервер установлен и версию HTTP протокола. Эта информация помещается в элементы $_SERVER["SERVER_ADDR"], $_SERVER["SERVER_PORT"], $_SERVER["SERVER_SOFTWARE"] и $_SERVER["SERVER_PROTOCOL"], соответственно. Ниже приводится пример с использованием данных элементов.

Использование элементов массива $_SERVER

echo "Имя сервера - " . $_SERVER [ "SERVER_NAME" ]. "
" ;
echo "IP-адрес сервера - " . $_SERVER [ "SERVER_ADDR" ]. "
" ;
echo "Порт сервера - " . $_SERVER [ "SERVER_PORT" ]. "
" ;
echo "Web-сервер - " . $_SERVER [ "SERVER_SOFTWARE" ]. "
" ;
echo "Версия HTTP-протокола - " . $_SERVER [ "SERVER_PROTOCOL" ]. "
" ;
?>

Элемент $_SERVER["REQUEST_METHOD"]

В элемент $_SERVER["REQUEST_METHOD"] помещается метод запроса, который применяется для вызова скрипта: GET или POST.

Эти шаги выполнять не нужно . Ваша сеть уже активирована. Когда вы обновите WordPress до версии 3.x, вам будет предложено обновить правила в файле.htaccess для режима Multisite.

  • 1 Перед началом
    • 1.1 Требования к администратору
    • 1.2 Требования к серверу
    • 1.3
  • 2
  • 3
  • 4
  • 5 Шаг 4: Установка сети
  • 6 Шаг 5: Активация сети
  • 7 Шаг 6: Управление сетью
  • 8 Это нужно знать
    • 8.1 Постоянные ссылки
    • 8.2 Плагины WordPress
    • 8.3 Рубрики и метки
    • 8.4 Переключение между поддоменами и подкаталогами
    • 8.5 .htaccess и Mod Rewrite

Перед началом

Требования к администратору

Если вы хотите запустить сеть блогов, вам следует иметь представление об основах администрирования UNIX/Linux. Также рекомендуется знание основ WordPress, PHP, HTML и CSS.
Создать и поддерживать сеть сложнее, чем обычный сайт. Эта страница поможет вам понять, действительно ли вам необходима сеть, и с чем вы можете столкнуться при её создании. Если инструкции на этой странице кажутся вам непонятными, сначала проведите тестирование на локальном сайте, не затрагивая основной.

Требования к серверу

Поскольку данная функция требует настройки сервера и некоторых технических навыков, следует проконсультироваться с вашим хостинг-провайдером по поводу поддержки этой функции. Запускать её на виртуальном хостинге не рекомендуется.
На шаге 4: Установка сети можно выбрать режим поддоменов или подкаталогов. Это означает, что каждый новый сайт вашей сети будет создан как виртуальный поддомен или подкаталог.
  • Поддомены
  • Подкаталоги
Помимо этого, на более позднем этапе можно воспользоваться плагином WordPress MU Domain Mapping , чтобы назначить отдельным сайтам собственные доменные имена.
Сайты в подкаталогах Используется расширение mod_rewrite на сервере с возможностью обработки файла.htaccess , в котором будет создана структура ссылок. Если вы уже используете на своём блоге «красивые» постоянные ссылки, то и сайты в подкаталогах будут работать. Сайты на поддоменах Используется маска для поддоменов . Необходимо разрешить её использование в Apache, а также добавить маску в записи DNS. (См. подробности на шаге 2 .) У некоторых хостинг-провайдеров уже разрешено использование маски, и в этом случае остаётся только добавить запись DNS. На тарифах виртуального хостинга этой возможности может не быть, поэтому перед включением этой функции проконсультируйтесь с вашим хостинг-провайдером.

Требования к параметрам WordPress

  • При включённом режиме Multisite в WordPress 3.0 недоступна возможность размещения WordPress в отдельном каталоге . Она конфликтует с поиском дочерних блогов.
  • Создать сеть нельзя в следующих случаях:
    • «Адрес WordPress (URL)» и «Адрес сайта (URL)» отличаются.
    • «Адрес WordPress (URL)» использует номер порта, отличный от ":80" и ":443".
  • Выбрать режим поддоменов нельзя в следующих случаях:
    • WordPress установлен в подкаталог (вместо корневого каталога).
    • «Адрес WordPress (URL)» совпадает с localhost .
    • «Адрес WordPress (URL)» совпадает с IP-адресом наподобие 127.0.0.1 .
  • Выбрать режим подкаталогов нельзя в следующих случаях:
    • Если ваш сайт существует больше месяца, из-за проблем с существующими постоянными ссылками. (Этот недочёт будет исправлен в одной из следующих версий. См. также «Переключение между поддоменами и подкаталогами» .)
(См. подробности в файле .)

Шаг 1: Создание резервной копии WordPress

При создании сети WordPress будет обновлён. Пожалуйста, сделайте резервную копию базы данных и файлов .

Шаг 2: Настройка маски для поддоменов

(Если вы выбрали режим подкаталогов, пропустите этот шаг .)
Сайты на поддоменах работают с использованием маски для поддоменов. Процесс состоит из двух шагов:
  1. Необходимо настроить поддержку маски в Apache.
    1. Откройте файл httpd.conf или подключаемый файл, содержащий запись VHOST для вашего сайта.
    2. Добавьте следующую строку: ServerAlias *.example.com
  2. В записях DNS для вашего сервера добавьте поддомен с маской, указывающий на основной домен. Это выглядит примерно так: A *.example.com
Если на вашем сервере используется панель Plesk. По сравнению с сервером, использующим cPanel (или вообще без панели управления), настройка маски для поддоменов на сервере, использующем панель Plesk, содержит некоторые отличия. Все необходимые шаги описаны в статье «Configuring Wildcard Subdomains for multi site under Plesk Control Panel‎» . Несмотря на то, что указания довольно подробные, процесс занимает всего несколько минут.
Внешние ссылки:
  • Wildcard DNS record (Wikipedia)
  • Apache Virtual Host (Apache HTTP Server documentation)

Шаг 3: Включение режима Multisite

Чтобы появился пункт меню «Сеть», нужно определить константу режима Multisite в файле wp-config.php .
Откройте wp-config.php и добавьте перед комментарием /* Это всё, дальше не редактируем. Успехов! */ следующую строку:
define("WP_ALLOW_MULTISITE", true);

Шаг 4: Установка сети

У вас должен появиться пункт «Сеть» в меню «Инструменты». Перейдите на страницу. См. также секцию «Перед началом» .
  • Поддомены — пример: site1.example.com и site2.example.com
  • Подкаталоги — пример: example.com/site1 и example.com/site2
Параметры сети Эти значения заполняются автоматически.
Адрес сервера Интернет-адресом вашей сети будет example.com . Название сети Как вы хотите назвать свою сеть? E-mail администратора Ваш адрес e-mail. Убедитесь, что все значения введены правильно, затем нажмите кнопку «Установить».
Возможно, вы увидите предупреждение о маске для поддоменов. См. секцию «Настройка маски для поддоменов» .

Внимание! Возможно, маска DNS настроена неправильно!
Скрипт установки попытался открыть случайный адрес (13cc09.example.com) на вашем домене.
Чтобы использовать режим поддоменов, необходимо использовать маску в записях DNS. В общем случае достаточно добавить с помощью инструмента настройки DNS запись с адресом * , указывающую на ваш сервер. доступна для записи . С помощью команд CHOWN и CHMOD нужно установить такие же параметры, как и у каталога wp-content . 2. Добавьте строки, которые выдаст вам WordPress, в файл wp-config.php . Эти строки создаются динамически в зависимости от конфигурации вашей сети. Откройте файл wp-config.php , оставаясь авторизованным в панели управления сайтом. Добавьте созданные строки сразу перед



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: