Intereting Posts
Меню WordPress для изменения названия страницы upload_max_filesize в .user.ini Не отражается в загрузке мультимедиа Разработка защищенной формы редактирования переднего конца Использовать пользовательский тип сообщения в качестве контейнера для хранения без регистрации Фильтрация петли Пользовательские типы сообщений и / или категории Создайте новое пользовательское поле для пользователей Автоматическое обновление с «закаленными» разрешениями Блог автоматически перенаправляется на страницу с ошибкой Редактирование сообщения и ответа страницы 503 Услуга недоступна Всегда ли требуется wp_reset_postdata? Вопрос с WPDB с категорией Нужна помощь в добавлении дополнительных элементов управления в пользовательский виджет Таксономия и пользовательский тип сообщения с Collpase Как заказать вывод get_term_children по алфавиту Показать пользовательское поле на странице вложений?

Обслуживание HTTP и HTTPS с одной установки

У меня установлена ​​WordPress, которая обслуживает контент через HTTP и HTTPS. URL-адрес сайта настроен как «http://www.example.com». Это работает для большинства ситуаций – если человек запрашивает страницу на странице https://www.example.com/page, страница подается через HTTPS.

Однако проблема, с которой я сталкиваюсь, заключается в том, что существует несколько функций шаблона WordPress, которые вызывают URL-адрес сайта (например, get_bloginfo ('stylesheet')), и когда они это делают, они включают в себя «http: //» в возвращаемом Результаты. Аналогично, изображения, вставленные в редактор WYSIWYG, имеют путь «http: //www.example.com …», жестко закодированный.

То, что я действительно хотел бы сделать, это найти способ определения URL-адреса базового сайта как «//www.example.com», который, мы надеемся, сделает все правильно. Тем не менее, поля admin в WordPress не поддерживают это.

Есть ли у кого-нибудь идеи, как это сделать?

Простое решение – использовать правила .htaccess.

 #Redirect HTTP to HTTPS RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Если вы не хотите принуждать HTTPS (или перенаправлять все запросы без HTTPS), URL-адреса в сообщениях могут обрабатываться следующим образом:

 function content_ssl($content) { if (isset($_SERVER["HTTPS"])) $content = ereg_replace("http://" . $_SERVER["SERVER_NAME"], "https://" . $_SERVER["SERVER_NAME"], $content); return $content; } add_filter('the_content', 'content_ssl'); 

Сам WordPress обрабатывает соответствие протокола. Однако некоторые плагины этого не делают.