Попробуйте добавить в wp-config.php
строку для корректной работы функции is_ssl():
$_SERVER['HTTPS'] = 1;
к сожалению нет, не работает.
Проблема в том, что HTTPS запрос принимает Nginx, а далее я так понимаю пересылает его в Apache уже через HTTP. Из-за этого и происходит зацикливание. Но как сделать??? пока вообще в голову не приходит
Модератор
Yuri
(@yube)
Но как сделать???
Сергей же написал.
Вставлять где-то до require_once(ABSPATH . 'wp-settings.php');
И в настройках обязательно надо поменять http на https.
И все остальное, но это уже потом.
Да, эту запись обязательно надо добавлять, можно прямо в начало после <?php
но это тоже не решило проблему…
Вот конфиг nginx с рабочей машины, с ним все заработало:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8;
root /var/www/example.com;
access_log /var/log/nginx/example.com-ssl-access.log main;
error_log /var/log/nginx/example.com-ssl-error.log error;
index index.php;
location / {
proxy_pass http://127.0.0.1:8887;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}
location ~* \.(gif|jpeg|jpg|png|tif|tiff|ico|jng|bmp|doc|pdf|rtf|xls|ppt|rar|rpm|swf|zip|bin|exe|dll|deb|cur)$ {
root /var/www/example.com;
access_log off;
expires 3d;
}
location ~* \.(css|js)$ {
root /var/www/example.com;
access_log off;
expires 180m;
}
location ~ /\.ht {
deny all;
}
location /phpmyadmin {
root /usr/share/;
index index.php;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
proxy_pass http://127.0.0.1:8887;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
expires 1M;
}
}
Модератор
Yui
(@fierevere)
永子
proxy_set_header X-Forwarded-Proto $scheme;
добавьте в конфиг nginx после директив proxy_pass
в apache надо в определении виртуального хоста прописать:
где-то после
<VirtualHost 127.0.0.1:8887>
SetEnvIf X-Forwarded-Proto https HTTPS=on
Модератор
Yui
(@fierevere)
永子
server_name example.com;
а это у вас так и висит? или там настоящий адрес сервера?