Цикл перенаправления https в WordPress wp-admin
7 ответ
- голосов
-
- 2015-02-25
Вы добавили
$_SERVER['HTTPS'] = 'on';
в ваш wp-config.php ?Вы также должны использовать плагин WP Migrate DB для перехода с
http://yoursite.com
наhttps://yoursite.com
You've added
$_SERVER['HTTPS'] = 'on';
to your wp-config.php?You should also use the WP Migrate DB plugin to migrate from
http://yoursite.com
tohttps://yoursite.com
-
Я бы дал вам 1000 голосов за это!I would give you a 1000 upvotes for this!
- 10
- 2016-01-17
- Sheharyar
-
По какой-то причине этот жизненно важный шаг так часто не включается.For some reason, this vital step is so often not included.
- 6
- 2016-01-27
- Tania Rascia
-
Спасибо!Это,вероятно,сэкономило мне еще несколько часов на попытки выяснить,почему админка не работает с SSL.Thank you! That probably saved me a few more hours of trying to figure out why the admin area wasn't working with SSL.
- 5
- 2016-02-20
- Sledge Hammer
-
это здорово,единственная проблема - как установить плагин,если веб-сайт не работает :) Я знаю,что всегда нужно делать резервную копию,прежде чем делать что-то подобное,но все же.Решение ниже сработало для меня :)that's great,the only problem is - how do you install plugin if the web-site is not working :) I know you always should backup before doing stuff like this, but still. The solution below worked for me :)
- 0
- 2016-09-22
- Timur Gafforov
-
Вот Это Да! $ _SERVER ['HTTPS']='включен';спас меня!wow! $_SERVER['HTTPS'] = 'on'; saved me!
- 4
- 2017-02-03
- PJunior
-
Почему это работает?Я уже использовал инструмент S&R Interconnect.У меня уже должен быть нужный протокол в базе данных.Why does this work? I already used Interconnect's S&R tool. I should already have the right protocol in the database.
- 2
- 2017-02-15
- Jeff
-
оператор `if` в документации не работал у меня,поэтому я просто всегда устанавливаю` $ _SERVER ['HTTPS']='on'; `the `if` statement in the docs didn't work for me, so am just always setting `$_SERVER['HTTPS'] = 'on';`
- 0
- 2017-04-13
- lewis
-
После добавления `$ _SERVER ['HTTPS']='on';` в wp-config.php я получаю сообщение «Извините,вам не разрешен доступ к этой странице» на странице `/wp-admin`,но явошли как админ.Я использую гибкий SSL Cloudflare,поэтому HTTPS-трафик отправляется на HTTP-порт.After adding `$_SERVER['HTTPS']='on';` to wp-config.php, I get the message `Sorry, you are not allowed to access this page.` on `/wp-admin` page but I logged in as an admin. I use Cloudflare flexible SSL so HTTPS traffic is sent to HTTP port.
- 0
- 2017-12-21
- baptx
-
Мы должны добавить `if strpos ($ _ SERVER ['HTTP_X_FORWARDED_PROTO'],'https')!==false) {$ _SERVER ['HTTPS']='on';} `перед` require_once (ABSPATH. 'wp-settings.php'); `как сказано здесь: https://wordpress.stackexchange.com/questions/250240/setting-serverhttps-on-prevents-access-to-wp-admin # comment414886_250254 https://wordpress.stackexchange.com/questions/262194/cannot-login-to-wordpress-admin-with-ssl-terminated-load-balancer/263461#263461We have to add `if strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) { $_SERVER['HTTPS'] = 'on'; }` before `require_once(ABSPATH . 'wp-settings.php');` like said here: https://wordpress.stackexchange.com/questions/250240/setting-serverhttps-on-prevents-access-to-wp-admin#comment414886_250254 https://wordpress.stackexchange.com/questions/262194/cannot-login-to-wordpress-admin-with-ssl-terminated-load-balancer/263461#263461
- 0
- 2017-12-21
- baptx
-
Извините за добавление еще одного * $ _ SERVER ['HTTPS']='on'; * спас мне комментарий,но он действительно устранил все проблемы с перенаправлением для меня.Я пробовал каждое изменениеnginx.conf в книге вместе с remove_filter ('template_redirect','redirect_canonical');который работал,но только для домашней страницы.$ _SERVER ['HTTPS']='on' сразу все исправил.Спасибо!!!!Sorry to add yet another *$_SERVER['HTTPS'] = 'on';* saved me comment, but it did indeed fix all redirect issues for me as well. I tried every nginx.conf change in the book along with remove_filter('template_redirect', 'redirect_canonical'); which worked but only for the homepage. The $_SERVER['HTTPS'] = 'on' immediately fixed everything. Thank you!!!!
- 0
- 2018-03-15
- Daniel
-
Спасибо тебе за это.Это сработало после 2 часов попытки исправления других ошибок.Thank you for this. This worked after 2 hours of trying other fixes.
- 0
- 2018-03-31
- hypern00b
-
+10000,бился головой о стену,гадая,почему SSL сломал мою админку,а веб-страница содержит URL+10000, was banging my head against a wall wondering why SSL broke my admin area and webpage include URLs
- 1
- 2018-05-17
- Wobbles
-
Спасибо!Часы поиска наконец приводят меня в нужное место.Thanks so much! Hours of search finally leads me to the right place.
- 1
- 2018-06-06
- Foxan Ng
-
БЛАГОДАРЮ ВАС!!Это важно для Cloudflare и должно входить в состав руководства.THANK YOU!! This is essential for Cloudflare and should come as part of the tutorial.
- 1
- 2018-07-05
- Sprachprofi
-
Ты гений! Большое вам спасибо.Я трачу так много часов,чтобы понять это. Вы выводите меня из бесконечного цикла. Благодаря!!You are a genius! Thank you soooooo much. I spend so many hours to figure this out. You get me out of an endless loop. Thanks!!
- 0
- 2018-07-22
- SequenceDigitale.com
-
Спасибо огромное!$ _SERVER ['HTTPS']='включен';работал у меня.Thank you so much! $_SERVER['HTTPS'] = 'on'; worked for me.
- 0
- 2018-10-20
- Komal
-
- 2016-03-16
У меня была аналогичная проблема,и я просто добавил в свой
wp-config.php
следующий фрагмент:/** SSL */ define('FORCE_SSL_ADMIN', true); // in some setups HTTP_X_FORWARDED_PROTO might contain // a comma-separated list e.g. http,https // so check for https existence if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
как предлагается в Кодексе .Это потребуется только в том случае,если в настройках балансировщика нагрузки (или брандмауэра) включена сквозная передача SSL.Это означает,что,хотя вы можете получить доступ к сайту через HTTP в рамках TLS/SSL,ваш сервер получает только HTTP.Чтобы учесть это,необходим вышеуказанный заголовок,чтобы WordPress мог "установить" HTTPS на
on
в массиве конфигурации$_SERVER
.I had a similar problem and just added the following snippet to my
wp-config.php
:/** SSL */ define('FORCE_SSL_ADMIN', true); // in some setups HTTP_X_FORWARDED_PROTO might contain // a comma-separated list e.g. http,https // so check for https existence if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
as suggested in the Codex. This will only be needed in case there's SSL passthrough enabled in your load balancer (or firewall) setup. Meaning that while you can access the site via HTTP within TLS/SSL, the communication that your server receives is HTTP only. To account for that, above header is needed so WordPress can "set" HTTPS to
on
in the$_SERVER
config array.-
Это отличное решение специально для тех,кто использует балансировщик нагрузки.Я размещал это с помощью Dokku (самостоятельный клон Heroku) и имел проблемы со статической загрузкой ресурсов и циклом перенаправления wp-admin.Dokku также использует обратный прокси-серверnginx для перенаправления входящего трафика 443 на порт 80,и это решает проблему.This is great solution specifically for anyone using a load balancer. I was hosting this using Dokku (a host-it-yourself clone of Heroku) and having problems with static resource loading and the wp-admin redirect loop. Dokku also does an nginx reverse proxy to forward incoming 443 traffic to port 80 and this fixes the issue.
- 2
- 2016-06-06
- ZachM
-
Мне пришлось просто поставить `$ _SERVER ['HTTPS']='on';`,потому что HTTP_X_FORWARDED_PROTO даже не указан в настройках на моем клиентском сервере:|I had to just put the `$_SERVER['HTTPS'] = 'on';` because HTTP_X_FORWARDED_PROTO is not even in the settings on my client's server :|
- 3
- 2017-01-23
- Tom Roggero
-
Отлично исправил мою проблему при использовании балансировщика нагрузки AWS.Fixed my issue perfectly when using an AWS load balancer.
- 1
- 2017-04-12
- Josh
-
Это также устранило «Слишком много проблем с переадресацией»,поскольку мой сайт находится за балансировщиком нагрузки на AWS.This also fixed the "Too many redirect issue" as my site is behind a load balancer on AWS.
- 0
- 2017-11-01
- voam
-
Я думаю,что важно добавить к этому ответу исправление для файла .htaccess для таких случаев: https://stackoverflow.com/questions/36748110/htaccess-too-many-redirects-when-trying-to-force-https,проверьте ответ @ harshal-lonare.I think is important to add to this answer the fix for the .htaccess file for such cases: https://stackoverflow.com/questions/36748110/htaccess-too-many-redirects-when-trying-to-force-https, check @harshal-lonare answer.
- 0
- 2018-10-05
- Gustavo Jantsch
-
- 2017-09-14
Поскольку у меня еще нет права комментировать,я опубликую это дополнение как еще один ответ:
Решение,предложенное Элиасом,чтобы добавить следующее в
wp-config.php
,помогло мне:/** SSL */ define('FORCE_SSL_ADMIN', true); // in some setups HTTP_X_FORWARDED_PROTO might contain // a comma-separated list e.g. http,https // so check for https existence if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
Однако у меня это сработало,только когда я поместил его перед всем остальным в этот файл!
As I do not have the comment privilege yet, I will post this addition as another answer:
The solution proposed by Elias, to add the following to
wp-config.php
, did the trick for me:/** SSL */ define('FORCE_SSL_ADMIN', true); // in some setups HTTP_X_FORWARDED_PROTO might contain // a comma-separated list e.g. http,https // so check for https existence if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
However, it only worked for me when I put it before everything else in this file!
-
В этом и заключалась моя проблема.Я положил их в конец файла,и это не сработало.Я был готов перестроить свой сайт с нуля.Переместили их наверх и бац,проблема исправлена.Спасибо Спасибо!!This was exactly what my problem was. I had put these at the end of the file and it wasn't working. I was ready to rebuild my site from scratch. Moved them to the top and bam, issue fixed. Thank you, Thank you!!
- 1
- 2018-02-03
- Dean Poulin
-
Это решение отлично подходит,если вы используете гибкий SSL за прокси-DNS,например Cloudflare.Спасибо.This solution is great if you're using a flexible SSL behind a proxy DNS like Cloudflare. Thank you.
- 0
- 2018-02-16
- Stefan P
-
Подтверждено,что работает.Большое спасибо,это устраняет множество проблем,которые у нас были с API и IFrames.На сайте не включен HTTPS,но нам нужно,чтобы на некоторых страницах он был включен.Wordpress должен иметь это как настройку по умолчанию ...Confirmed working. Thank you so much, this fixes a lot of problems we had with API's and IFrames. The site doesn't have HTTPS enabled, but we need some pages to have it on. Wordpress should have this as a setting by default...
- 0
- 2018-04-25
- Andy
-
FYI - этот код может быть где угодно,но должен быть перед `require_once (ABSPATH. 'Wp-settings.php');`,который находится в конце файла.FYI - that code can be anywhere but needs to be before `require_once( ABSPATH . 'wp-settings.php' );` which is at the end of the file.
- 0
- 2019-09-20
- Damodar Bashyal
-
Это работает,спасибоThis works, thanks
- 0
- 2020-04-28
- Mohammed Tawfik
-
это работает и для меняthis works for me as well
- 0
- 2020-06-10
- Md. Amanur Rahman
-
- 2017-02-21
Еще одна версия для книг,просто добавьте ее в начало wp-config.php
Причина в том,что могут быть балансировщики нагрузки или что-то,что не передает правильное значение https,поэтому вам нужно взять его из другого места и подделать для wordpress.
if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] )) || (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) { $_SERVER['HTTPS'] = 'on'; }
Another version for the books, just add this to the top of wp-config.php
Reason is that there could be load balancers or something that does not pass along the proper https value, so you have to grab it from elsewhere and fake it for wordpress.
if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] )) || (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) { $_SERVER['HTTPS'] = 'on'; }
-
- 2019-02-10
На самом деле ... У меня была эта проблема,и решить ее было довольно легко и неудобно.Каким-то образом на веб-хосте моя папка wp-admin была удалена,и поэтому нет wp-admin с тем же сообщением об ошибке.
После нескольких часов тестирования,проведенных по-разному,я просто увидел это,и при повторной загрузке и загрузке все работало нормально.
Проверьте,ребята,все может быть так просто.
Actually... I had this issue and the solving was quite easy and embarassing. Somehow on the webhost my wp-admin folder was deleted and therefore no wp-admin with this same error message.
After hours of testing so many different ways I just saw this and when downloaded and uploaded again it all worked as normal.
Check it guys, it can be that simple.
-
- 2019-07-19
Вопрос 5 лет ...
Хорошо,у меня была эта ошибка после установки моего SSL-сертификата и изменения всех ссылок с
http
наhttps
с использованием найденного wp-cli.phar здесь .Я пробовал различные конфигурации,но,похоже,ни одна из них не решила эту проблему,если я не установил следующее:
define('FORCE_SSL_ADMIN', true); define('FORCE_SSL_LOGIN', true);
к этому:
define('FORCE_SSL_ADMIN', false); define('FORCE_SSL_LOGIN', false);
Это позволило мне перейти на страницу входа в систему,но затем я не смог войти в систему. Я попробовал ответить на два,но это,к сожалению,тоже не помогло. Пока я не внес следующие изменения:
/** SSL */ define('FORCE_SSL_ADMIN', true); // in some setups HTTP_X_FORWARDED_PROTO might contain // a comma-separated list e.g. http,https // so check for https existence if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true) $_SERVER['HTTPS']='on';
Почему-то не знаю почему - пришлось менять
<цитата>!== ложь
в
<цитата>!== правда
Я используюnginx в качестве хоста и обратный прокси для модуляnginx ... Если кто-нибудь знает,почему это сработало,дайте мне знать
5 year old Question...
Okay, I had this error, after installing my SSL Certificate and changing all links that were
http
tohttps
using the wp-cli.phar found here.I tried various configurations and none seemed to resolve this, unless I set this:
define('FORCE_SSL_ADMIN', true); define('FORCE_SSL_LOGIN', true);
to this:
define('FORCE_SSL_ADMIN', false); define('FORCE_SSL_LOGIN', false);
It allowed me to hit the log-in page, but then was unable to actually log-in. I tried answer two but that unfortunately didn't help either, Untill I did the following change:
/** SSL */ define('FORCE_SSL_ADMIN', true); // in some setups HTTP_X_FORWARDED_PROTO might contain // a comma-separated list e.g. http,https // so check for https existence if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true) $_SERVER['HTTPS']='on';
For some reason, I do not know why - I had to change the
!== false
to
!== true
I'm running nginx as host and reverse proxy to nginx unit... If anyone has any idea why that worked, Please let me know
-
Ох,черт возьми,спасибо!2020,и нам все еще нужно сканировать Интернет,чтобы иметь возможность установить SSL на wordpress,и это потому,что каким-то образом наиболее заданный ответ не работает для недопустимого оператора. Еще раз спасибо!Oh for F@!$'s sake, Thank you! 2020, and we still have to crawl the web to be able to put SSL on wordpress, and it's because, somehow, the most given answer doesn't work for an invalid statement. Thanks again!
- 0
- 2020-08-15
- EmmanuelBeziat
-
- 2020-05-07
У меня была такая же проблема,когда я размещал свой сайт в службе веб-приложений Azure Linux.
Попробуйте этот плагин. будьте осторожны,когда он активен,он работает. https://wordpress.org/plugins/jsm-force-ssl/
<цитата>Этот плагин использует собственные фильтры WordPress вместо вывода PHP. буфер,для максимальной надежности,производительности и совместимости с кешированием (этот плагин не влияет на производительность кеширования) вместе с 301 постоянные перенаправления для лучшего SEO (301 редирект считается лучшим для SEO при переходе с HTTP на HTTPS).
Учитывает переменные прокси/балансировки нагрузки для крупного хостинга. среды:
HTTP_X_FORWARDED_PROTO HTTP_X_FORWARDED_SSL Требования:
Ваш веб-сервер должен быть настроен с использованием сертификата SSL и иметь возможность обрабатывать HTTPS-запрос.
Просто активируйте плагин,и все готово:
Нет настроек плагина,которые нужно регулировать,и никаких изменений в ваша конфигурация WordPress - просто активируйте или деактивируйте плагин для включения/отключения фильтров и динамических перенаправлений.
I had the same issue when I hosted my site on Azure webapp service Linux.
Try this plugin. take care when it active it works. https://wordpress.org/plugins/jsm-force-ssl/
This plugin uses native WordPress filters, instead of PHP’s output buffer, for maximum reliability, performance and caching compatibility (this plugin does not affect caching performance), along with 301 permanent redirects for best SEO (301 redirects are considered best for SEO when moving from HTTP to HTTPS).
Honors proxy / load-balancing variables for large hosting environments:
HTTP_X_FORWARDED_PROTO HTTP_X_FORWARDED_SSL Requirements:
Your web server must be configured with an SSL certificate and able to handle HTTPS request.
Simply activate the plugin and you’re done:
There are no plugin settings to adjust, and no changes are made to your WordPress configuration — simply activate or deactivate the plugin to enable / disable the filters and dynamic redirects.
Я используюnginx в качестве своего веб-сервера,и я отредактировал файл конфигурации,чтобы указать на https,поэтому я изменил настройки URL-адреса WordPress на https,а также добавил код администратора WordPressforce ssl в свой файл wp-config,но я продолжаю работатьв ошибку " На этой веб-странице есть цикл переадресации "