Архив рубрики: Публикации

Программный вывод полей в Drupal 7

При работе с проектами на Drupal 7 нередко возникает необходимость вывода данных нестандартно, т. е. без использования инструментов пользовательского интерфейса. Несмотря на то, что даже стандартный способ вывода данных или полей достаточно гибок и универсален, однако бывают ситуации, когда лучше и проще прибегнуть к программному способу. Другими словами, выводить поля, написав соответствующий код, используя API Drupal. В данной статье будет показано, в каких ситуациях и как вывести поля программным способом.

Когда нужно выводить поля программно?

Поле необходимо выводить программно в следующих случаях:

  • Когда изначально не представляется возможным задействовать стандартный инструментарий пользовательского интерфейса, по-умолчанию предоставляемого Drupal. Например, когда разрабатывается новый модуль, который работает с данными полей, которые необходимо определённым образом отображать;
  • Когда необходимо вывести поле в непредусмотренном для него месте.

Все эти ситуации объединяет один фактор: поле выводится вне своей сущности. Любое поле в Drupal принадлежит какой-либо структуре данных. Когда из этой структуры данных берётся отдельное поле (или его значение) и далее выводится отдельно от его структуры данных, то это в частности, и есть программный вывод поля. Сама же структура данных, к которой принадлежит поле — это и есть сущность.

Для примера можно рассмотреть распространённую ситуацию. Пусть требуется вывести в боковой колонке содержимое самого популярного или высокооценённого комментария для какой-либо из статей. Сам комментарий — это целостная структура данных, состоящая из таких полей как: тема, автор, дата размещения, количество лайков, ну и конечно же — само основное содержимое комментария. Именно это содержимое (т. е. поле) необходимо вывести отдельно без остальных полей структуры данных в совершенно другом месте страницы. Для этого используется программный вывод вручную с помощью специальных функций API Drupal.

Конечно, для подобных задач можно использовать такие замечательные модули как Views и/или Panels. Однако, в простых случаях, проще и быстрее сделать это программно. Всё-таки Views и Panels разрабатывались как раз для очень сложного вывода полей и их компоновок.

В итоге, программный вывод полей применяется для их вывода вне их сущностей. Теперь, для более полного понимания, необходимо разобраться с «сущностями» Drupal.

Что такое сущности Drupal 7?

Сущность Druapl – это уровень абстракции, характеризующий структуры данных Drupal. Таких структур в Drupal очень много, поэтому в 7-й версии этой CMS разработчиками было введено такое понятие — сущность или entity.

Как можно догадаться из предыдущей главы, комментарий — это сущность типа «comment». Тип материала, нода (node – узел), пользователи, термины таксономии, блоки — это также сущности, состоящие из определённого набора полей. Сущности можно формировать и создавать самостоятельно. После этого они будут готовы к выводу как единое целое.

Поле Drupal является базовым элементом в структуре объектов Drupal. Что касается ноды Drupal, то с технической точки зрения, нода — это верхушка иерархии этих объектов, наиболее общая сущность, практически объединяющая все остальные. Визуально для пользователя, нода — это отображаемая в конечном виде страница Drupal. Содержащая материал, блоки, комментарии, теги и т. д. Которые, в свою очередь, также являются сущностями. Получить доступ к отдельным полям сущностей, и автоматически настроить их вывод позволяет функция field_view_field() из API Drupal 7.

Использование функции field_view_field()

Теперь можно более подробно рассмотреть, как работает функция field_view_field(). Она сама ничего не выводит, но производит большую работу:

  • получает доступ к самому полю, используя в качестве входных параметров тип его сущности, идентификатор сущности, а также машинное имя самого поля;
  • с помощью дополнительных параметров (если так будет угодно программисту) настраивает поле для последующего вывода.

Второй пункт позволяет использовать функцию field_view_field() гибко, передавая в неё массив, содержащий всевозможные опции вывода, например:

  • выводить ли поле вместе с его меткой (Label);
  • если это текст, то в каком объёме (по количеству символов) его вывести;
  • если это изображения (или ссылка на него), то какой формат (размер, графические эффекты) к нему применить;
  • и многие другие.

В итоге функция field_view_field() вернёт отформатированный набор данных, который остаётся только отрендерить на странице в нужном месте с помощью функции render().

Синтаксис функции field_view_field() следующий:

<?php

field_view_field($entity_type, $entity, $field_name, $display, $langcode)

Назначение её параметров:

  • $entity_type – тип сущности (например комментарий или нода), к полю которого нужно получить доступ;
  • $entity – идентификатор сущности;
  • $field_name – машинное имя поля, к которому нужно получить доступ;
  • $display – настройки отображения поля, которые могут быть заданы в составе массива опций, определяющих вывод;
  • $langcode – опционально, задаёт язык кода, на котором должно отображаться значение поля.

Небольшой пример:

<?php

$nid = node_load($node);

$output = field_view_field(‘node’, $nid, ‘field_preamble’, array(

         ‘label’ => ‘hidden’,

         ‘type’ => ‘test_summary_or_trimmed’,

         ‘settings’ => array(‘trim_length’ => 150)));

render($output);

В данном примере опущена HTML-разметка для чистоты восприятия кода, который в произвольном месте страницы выводит поле «field_preamble». Хранящее содержимое преамбулы к статье. Также производится его форматирование, которое заключается в том, чтобы не выводилась метка этого поля, а содержимое было обрезано до 150 символов. Возвращаемый результат присваивается переменной $output. После чего она передаётся в функцию render() для рендеринга на странице.

А как быть, когда сущность имеет несколько значений одного поля? Например, когда для поля «field_image» определено несколько значений, т. е. изображений. Нужно сначала получить список всех значений поля с помощью функции field_get_items(). А затем, отобрав нужное значение, обработать его функцией field_view_value(). Которая аналогична field_view_field(), но предназначена для работы с конкретным значением поля. Пример:

<?php

$image = field_get_items(‘node’, $nid, ‘field_image’);

$output = field_view_value(‘node’, $nid, ‘field_image’, $image[0], array(

       ‘label’ => ‘hidden’,

       ‘type’ => ‘image’,

       ‘settings’ => array(

               ‘image_style’ => ‘thumbnail’,

               ‘image_link’ => ‘content’,

      ),

));

Как можно видеть, сначала определяется список значений поля «field_image», который присваивается переменной $image. Далее, функция field_view_value() получает доступ к переданному ей нужному значению поля «field_image» (по индексу списка или массива $image[]) и форматирует его вывод для последующего рендеринга.

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-04-22T13:54:15
Drupal

Можно ли изменить язык интерфейса в Chrome или Firefox?

Большинство программ, приложений или браузеров предпочитают использовать английский в качестве языка по-умолчанию. Однако не все из нас являются носителями английского языка. Поэтому нам нравится использовать приложения на нашем языке. Если вы заинтересованы в знании способа изменения языка интерфейса пользователя браузера, прочитайте этот пост и следуйте приведенным ниже инструкциям.

Если ваш браузер — Google Chrome или Mozilla Firefox, и вы не знаете, как изменить язык его интерфейса, проверьте это руководство. Это может помочь вам заставить ваш браузер работать на любом языке, который вы предпочитаете. Этот пост охватывает следующее:

  1. Изменить язык интерфейса браузера Chrome
  2. Изменить язык интерфейса браузера Firefox

1] Изменить язык интерфейса пользователя браузера Chrome

По-умолчанию Google Chrome настраивает язык вашей операционной системы как язык пользовательского интерфейса (UI). Тем не менее, вы можете легко изменить его. Самый простой способ изменить этот параметр в Google Chrome для Windows — через настройки браузера. Итак, начнём.

Запустите браузер Google Chrome, нажмите «Меню» (отображается в виде трех точек) и выберите «Настройки» из списка параметров.

Теперь прокрутите вниз до нижней части страницы, чтобы найти ссылку «Дополнительно». Когда найдете, нажмите на ссылку.

После этого нажмите кнопку «Язык» и выберите «Добавить языки», если нужного языка нет в списке.

Выберите язык, который вы хотели бы добавить из списка.

Наконец, установите флажок «Показать Chrome на этом языке» и перезапустите браузер, чтобы изменения вступили в силу.

2] Изменить язык интерфейса браузера Firefox

В отличие от Chrome, Firefox ранее поддерживал две опции для изменения языка интерфейса браузера:

  1. Загрузку и установку языковых пакетов.
  2. Переустановку Firefox, используя установщик с поддержкой нужного языка.

Оба эти варианта были сочтены уступающими тому, как Google Chrome обрабатывал подобные изменения. Зачем? Браузер позволил своим пользователям напрямую изменять язык интерфейса без необходимости установки языкового пакета или всего браузера.

Firefox теперь изменил это, поскольку в настройках браузера есть опции переключения языков.

Чтобы изменить язык пользовательского интерфейса в Firefox, загрузите about:preferences в адресной строке браузера. Как вы, возможно, знаете, страница позволяет вам сбросить настройки предпочтений Firefox, если это необходимо.

Когда страница откроется, прокрутите вниз до раздела «Язык и внешний вид».

Там вы найдете текущий язык интерфейса, отображаемый под языком. Кроме того, вы увидите кнопку «Выбрать альтернативные», чтобы изменить эту настройку.

Нажмите «Выбрать язык, чтобы добавить его…», а затем «Найти больше языков».

Затем выберите «Добавить», чтобы добавить язык. Ваш браузер должен загрузить языковой пакет и автоматически добавить его. Кроме того, если словарь доступен для того же самого, он также будет загружен.

Повторите шаги, указанные выше, для других языков, которые вы хотели бы добавить.

Как только порядок языков будет определен, будет установлен приоритет, в котором они должны использоваться. Вы можете изменить его в любое время, просто перемещая кнопки вверх или вниз. Прежде всего, предпочтение intl.locale.requested определяет приоритет языков в браузере Mozilla. Однако он виден или виден только в том случае, если в браузере установлено два или более языков.

Наконец, нажмите кнопку «ОК», чтобы Firefox сохранил сделанные изменения. Когда это будет сделано, Firefox отобразит уведомление о перезапуске. Выберите опцию «Применить и перезапустить», чтобы перезапустить Firefox и начать работу с новым языком интерфейса.



2019-04-21T18:22:17
Вопросы читателей

Мультидоменная переадресация (+ с www +на кириллических доменах) на nginx

Т.к. большинство моих и клиентских сайтов на wordprss даже в 2019 году работает на сервере под управлением Ubuntu + nginx + apache + php mpm-itk, и многие из них не имеют до сих пор правильной переадресации с www на домен без www (или наоборот), а так же на некоторых сайтах есть по несколько доменов, а некоторые клиентские сайты содержат до 5 дополнительных доменов, которые просто созвучны, а какие-то ещё и имеют кириллическую версию или наоборот, то правильным было бы настроить таки переадресацию и не средствами .httaccess (от apache я планирую избавиться после переноса всех старых сайтов на новый сервер под ubuntu 18.04, который настраиваю на текущий момент). Ну так вот, когда-нибудь я может перепишу и эту статью, а пока:




Если вам нужно сделать переадресацию с дополнительных доменов, с www на основной домен, то вот вам образец конфигурации nginx, который я использую сам:




Открываем файл конфигурации вашего сайта:




sudo nano /etc/nginx/sites-available/YOURDOMAIN




Далее добавляем в самое начала файла пару строчек:




server {
listen 80;
server_name *.YOURDOMAIN.ru YOURDOMAIN2.ru *.YOURDOMAIN2.ru xn----9sbkenr8bkrs.xn--p1ai *.xn----9sbkenr8bkrs.xn--p1ai;
return 301 http://YOURDOMAIN.ru$request_uri;
}

далее ваши стандартные настройки:

server {
listen 80;
server_name YOURDOMAIN.ru;
server_tokens off;
....
}




После чего сохраняем и обновляем конфигурацию nginx без перезагрузки командой:




sudo service nginx reload




Думаю, что вам и без этого комментария понятно, что мы делаем переадресацию с параметрами на YOURDOMAIN.ru




Переадресовываем мы с кириллического домена и ЛЮБОГО ЕГО ПОДДОМЕНА хуб-лидсец.рф, указав его punycode версию:




xn—-9sbkenr8bkrs.xn--p1ai *.xn—-9sbkenr8bkrs.xn--p1ai




Так же мы делаем переадресацию с ЛЮБОГО ПОДДОМЕНА YOURDOMAIN.ru (за исключением самого домена) при помощи:




*.YOURDOMAIN.ru




Так же мы делаем переадресацию с ЛЮБОГО ДОМЕНА И ПОДДОМЕНА YOURDOMAIN2.ru при помощи:




YOURDOMAIN2.ru *.YOURDOMAIN2.ru




Так же вы можете добавить SSL, думаю, что допишу это чуть позже, но это не точно 🙂



2019-04-21T01:23:28
wordpress

Отправка файлов со смартфона Android на Windows 10 с помощью Bluetooth

Хотя в наши дни сети Wi-Fi и облачное хранилище являются обычным явлением, вы все равно можете оказаться в ситуации, когда вы не можете использовать их для отправки файлов со смартфона Android на ноутбук или планшет под управлением Windows 10. Что вы можете сделать, если у вас нет USB-кабелей? Ответ заключается в отправке файлов со смартфона Android на ноутбук Windows 10 с помощью Bluetooth. Хотя это не так просто, как хотелось бы, но и не слишком сложно. Вот как можно передавать файлы с устройств Android на устройства Windows 10 с помощью Bluetooth.

Шаг 1. Соедините свой смартфон Android с ноутбуком или планшетом с Windows 10

Сначала включите Bluetooth на смартфоне Android и ноутбуке с Windows, а затем соедините их вместе. Если вы не знаете, как это сделать, выполните действия, описанные в этом руководстве: подключите смартфон Android к ноутбуку с Windows 10 (планшет или ПК) с помощью Bluetooth.

Шаг 2. Подготовьте Windows 10 для приема файлов по Bluetooth

Чтобы получить файл на свой компьютер с Windows 10 со смартфона Android, вы должны сначала сообщить Windows 10, что вы собираетесь это сделать. Как и все остальное в Windows, вы можете сделать это несколькими способами. Один из способов — через приложение «Настройки»: запустить его, а затем перейти на «Устройства».

В категории «Устройства» перейдите к «Bluetooth и другим устройствам», а затем прокрутите вниз в правой части окна, пока не найдете ссылку «Отправлять или получать файлы по Bluetooth». Как только вы это сделаете, щелкните или нажмите на него, и откроется мастер передачи файлов Bluetooth.

Откроется мастер передачи файлов Bluetooth . Это дает вам две опции: «Отправить файлы» или «Получить файлы». Зная, что вы хотите отправить некоторые файлы со своего смартфона Android, вы должны выбрать «Получить файлы».

Затем мастер передачи файлов Bluetooth сообщает, что Windows 10 «ожидает подключения».

Вы можете перейти к следующему разделу этого учебника, в котором описаны другие методы выполнения шага 2 этого учебника.

Бонус: альтернативы для шага 2

Вы также можете открыть тот же мастер и подготовить Windows 10 для приема файлов по Bluetooth, щелкнув правой кнопкой мыши значок Bluetooth в области уведомлений на панели задач. В контекстном меню выберите «Получить файл».

Наконец, третий быстрый способ запустить мастер передачи файлов Bluetooth на любом ПК с Windows — это использовать окно «Выполнить» (нажмите Win + R на клавиатуре), введите fsquirt.exe и нажмите или коснитесь OK.

Теперь пришло время отправлять нужные файлы со смартфона Android на ноутбук с Windows 10.

Шаг 3. Обмен файлами со смартфона Android с Windows 10 через Bluetooth

На смартфоне Android выберите файлы, которые вы хотите передать, и нажмите «Поделиться». Вы можете сделать это из любого приложения, которое может открыть файлы, которые вы хотите отправить. Например, вы можете выбрать и поделиться фотографиями с помощью приложения Google Photos, а также приложения Галерея. Точно так же вы должны иметь возможность обмениваться документами с помощью приложения «Файлы», а также из папки «Загрузки», если они там хранятся.

Независимо от того, какое приложение вы используете, выберите файлы, которые вы хотите передать, и нажмите кнопку «Поделиться». Например, в Google Фото кнопка «Поделиться» выглядит следующим образом.

После того, как вы нажмете кнопку «Поделиться», ваш смартфон Android должен спросить, с кем или как поделиться файлами, которые вы выбрали. Прокрутите список доступных вариантов и выберите Bluetooth.

Ваш смартфон Android должен позволять вам выбирать, на какое устройство Bluetooth вы хотите отправлять файлы. Нажмите на свой компьютер с Windows 10 или устройство.

Это все, что вам нужно сделать на вашем смартфоне Android. Теперь пришло время вернуться к Windows 10.

Шаг 4. Получите файлы в Windows 10 и выберите, где их сохранить

На ПК или устройстве с Windows 10 передача по Bluetooth должна начаться автоматически. Вам просто нужно подождать, пока все файлы будут переданы.

После того, как все файлы будут получены Windows 10, вы увидите сводку. Вас также спросят о месте, где вы хотите сохранить полученные файлы. Оставьте папку по умолчанию или нажмите на Обзор, чтобы выбрать новое местоположение, если это то, что вы хотите. Когда закончите, нажмите или нажмите Готово.

Это оно! Файлы, отправленные через Bluetooth со смартфона Android, теперь доступны в Windows 10.

Используете ли вы Bluetooth для отправки файлов со смартфона Android на ноутбук с Windows 10?

Нам любопытно, если люди все еще делают это. Это несколько запутанный способ отправки файлов в период, когда сети Wi-Fi и облачное хранилище распространены. Вы все еще отправляете файлы через Bluetooth? При каких обстоятельствах ты это делаешь? Кроме того, не стесняйтесь поделиться советом или задать любые вопросы, которые могут у вас возникнуть, в разделе комментариев ниже.



2019-04-20T19:14:19
Вопросы читателей

Перевод сайтов на шифрованное подключение https/ssl. Получение сертификата от Let’s Encrypt и установка/настройка nginx. + автообновление при помощи certbot на Ubuntu 18.04 LTS

Для начала нам нужно установить certbot:




sudo apt install python-certbot-nginx 




Теперь Certbot готов к использованию, но для того, чтобы он мог настроить SSL для Nginx, нам сперва необходимо проверить кое-какие настройки Nginx.




Шаг 2 — Проверка настроек Nginx




Certbot должен иметь возможность найти корректный серверный блок в вашей конфигурации Nginx для того, чтобы автоматически конфигурировать SSL. Для этого он будет искать директиву server_name, которая совпадает с доменным именем, для которого вы запросите сертификат.




Если вы следовали инструкциям по настройке серверного блока в руководстве по установке Nginx, у вас должен быть серверный блок для вашего домена по адресу /etc/nginx/sites-available/example.com с уже правильно настроенной директивой server_name.




Для проверки откройте файл серверного блока в nano или любом другом текстовом редакторе:




 sudo nano /etc/nginx/sites-available/example.com 




Найдите строку с server_name. Она должна выглядеть примерно так:




...
server_name example.com www.example.com;
...




Если она выглядит таким образом, закройте файл и переходите к следующему шагу.




Если она не выглядит так, как описано выше, обновите директиву server_name. Затем сохраните и закройте файл, после чего проверьте корректность синтаксиса вашего конфигурационного файла командой:




 sudo nginx -t 




Если вы получили ошибку, откройте файл серверного блока и проверьте его на наличие опечаток или пропущенных символов. После того, как ваш конфигурационный файл будет проходить проверку на корректность, перезагрузите Nginx для применения новой конфигурации:




sudo service nginx reload 




Теперь Certbot может находить и обновлять корректный серверный блок.




Далее обновим настройки файрвола для пропуска HTTPS трафика.




Настраиваем certbot:




sudo certbot certonly 




После чего вы увидите следующее сообщение:




Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
1: Nginx Web Server plugin - Alpha (nginx)
2: Spin up a temporary webserver (standalone)
3: Place files in webroot directory (webroot)
Select the appropriate number [1-3] then [enter] (press 'c' to cancel):




Выбираем 3 (Place files in webroot directory (webroot)) вариант.




После чего нас попросят ввести наш e-mail. Она будет отображаться во всех установленных сертификатах:




your@eeee.mail




После этого вас просят прочитать соглашение и либо принять его или отклонить.




Согласшамся и нажимаем A -agree




После чего вас просят подписаться или не подписаться на рассылку от Let’s Encrypt:




Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights.
(Y)es/(N)o:




Согласшамся и нажимаем Y -yes или отказываемся и нажимаем N -no




После чего нас просят ввести домен/ы, разделенные запятыми, пробелами или /. Отказываемся, вписав C.




Получение сертификата для домена sitename.ru




certbot certonly -d sitename.ru -d www.sitename.ru




Последние версии certbot автоматически создают задание для
автообновления сертификатов по крону: /etc/cron.d/certbot либо с использованием системного таймера systemctl list-timers и создавать его самому не нужно!




и создавать его самому не нужно!




Оригинал используемой статьи: https://www.digitalocean.com/community/tutorials/nginx-let-s-encrypt-ubuntu-18-04-ru




Проверить правильность настройки https можно на сайте: https://www.ssllabs.com/ssltest/index.html



2019-04-20T02:35:10
Настройка web сервера

Серия статей о переносе сайтов на wordpress (и не только) на https/ssl.

Маленькая метка-заметка о проблеме переноса сайта на wordpress, которая возникла у меня сегодня.




Перенеся на https уже несколько сайтов, я успел набить руку, но сегодня я столкнулся с проблемой при переносе сайта на wordpress. Хоть перед переносом я и почитал пару статей и даже посмотрел пару видеороликов о возможных проблемах, но интернет не готовил меня к тому, что после получения сертификата, установки его на NGINX, изменения путей в админке и базе WP я увижу прекрасную циклическую перезагрузку главной страницы сайта. При этом я не мог зайти и в админку сайта и «почему-то» в исходном коде страницы авторизации wordpress я продолжал видеть кучу путей http://, а не https:// и вели они на стандартные файлы wordpres, т.е. это была не проблема моей темы или какого-либо плагина.




Вместо загрузки главной страницы сайта wordpress я видел ошибку:




ERR_TOO_MANY_REDIRECTS




Немного погуглив я осознал, что проблема оказалась в том, что у меня помимо nginx и php на сервере крутится ещё и apache, а wordpress, в свою очередь проверяет возможность работы по https протоколу через наличие переменной $_SERVER[‘HTTPS’], которая оказалась пустой в моем случае.




В этих ваших интернетах рекомендовали прописать в самое начало файла(на следующую строку после<?php ) wp-config.php следующую строку:




 $_SERVER['HTTPS'] = 'on'; 




Вписал, проверил и: о, чудо! Заработало!




Но я решил, что это очередной костыль, которым пользоваться я не желаю, и проблемы в настройке web-server’a, который к счастью был моим и изменения конфигурации я мог вносить как пожелаю.




В итоге я наше решение, которое на первый взгляд не каждому приходит на ум в первые пять секунд мышления ))




Я удалил $_SERVER[‘HTTPS’] = ‘on’; из wp-config.php, ведь это не более, чем костыль.




После чего в конфигурационный файл вашего сайта в nginx нужно внести следующую строку (если она отсутствует).




sudo nano /etc/nginx/sites-available/YourDomain.ru
YourDomain.ru - домен вашего сайта или его конфигурационный файл




В секцию servers -> loaction /




proxy_set_header X-Forwarded-Proto $scheme;




После чего он стал выглядеть примерно следующим образом:





location /
{
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;

}
}




После чего нужно не забыть перезагрузить nginx:




sudo service nginx restart




Далее я полез в консоль сервера и включил модуль setenvif:




sudo a2enmod setenvif




Но простого включения этого модуля в нашем случае оказалось недостаточно, пришлось ещё отредактировать файл: /etc/apache2/mods-enabled/setenvif.conf




sudo nano /etc/apache2/mods-enabled/setenvif.conf




После чего нужно вписать в него (я вписал в самое начало файла) следующие строки:




<IfModule setenvif_module>
    SetEnvIf X-Forwarded-Proto https HTTPS=on
</IfModule>




Можно же вписать и иначе:




После 
<IfModule mod_setenvif.c>
Вписываем
        SetEnvIf X-Forwarded-Proto https HTTPS=on




Сохранил изменения и перезагрузил веб-сервер apache2 командой:




sudo service apache2 restart




Всё. Проблема переноса wordpress на https, которая возникала из-за того, что в связке Nginx + Apache в переменной $_SERVER в PHP отсутствует параметр HTTPS, а переменная SERVER_PORT равна 80.



2019-04-19T14:22:27
wordpress