Сложный сценарий Wordpress, пытающийся запустить https

Честно говоря, я понятия не имею о более предварительном и наводящем на размышления названии, так что... извините перед всеми модераторами заранее.

Итак, я правильно настроил Let’s Encrypt для своего веб-сайта с помощью Nginx. Когда я закончил, я вижу веб-сайт без CSS, JS и т. д. в типичной проблеме blocked:mixed:content (BMC). BMC легко исправить, вы проверяете конфигурацию URL WordPress плюс еще один или два материала.

Итак, здесь все начинает усложняться. Только после того, как я успешно вошел в свой wp-admin, Wordpress показывает мне Sorry, you are not allowed to access this page., что сзади является ошибкой 403. В то время error.log ничего не покажет, однако access.log покажет следующее:

160.160.160.160 - - [26/Dec/2016:11:43:59 -0600] "GET /wp-admin/ HTTP/2.0" 403 1826 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
160.160.160.160 - - [26/Dec/2016:11:43:59 -0600] "GET /favicon.ico HTTP/2.0" 200 159 "https://www.paradisearenasblancas.com/wp-admin/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"

(кстати, поддельные IP-адреса)

Пока все это просто информация, и я не вижу единственной полезной информации о рассматриваемой ошибке.

Я настроил свою установку Wordpress со старым URL-адресом http, поэтому после того, как я не могу войти в панель управления, я могу редактировать эти URL-адреса непосредственно с помощью MySQL или вручную добавить их в wp-config. Проблема в том, что это дает мне ошибку net::ERR_TOO_MANY_REDIRECTS в браузерах. Так что это своего рода сценарий узкого места, и я понятия не имею, что делать.

Я не могу найти ошибку в моем файле website.conf:

server {
    listen 80;
    listen [::]:80;
    server_name www.mywebsite.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/ssl-www.mywebsite.com.conf;
    include snippets/ssl-params.conf;

    server_name  www.mywebsite.com;

    root   /usr/share/nginx/html/mywebsite.com/;
    index index.php index.html;

    error_log  /var/log/nginx/error-paradise.log;
    access_log /var/log/nginx/access-paradise.log;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /usr/share/nginx/html;
        }

    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;

            # Wide-open CORS config for nginx
        add_header 'Access-Control-Allow-Origin' 'https://www.mywebsite.com';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Headers' 'Content-Type,Accept';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
        }

    location ~ /.well-known {
                allow all;
        }
}

Еще я переместил все плагины из каталога plugins и ничего, все по-прежнему.

Я понятия не имею, что еще делать. Любая помощь будет высоко ценится.

РЕДАКТИРОВАТЬ: Кажется, это тема, которую я использую. Я попытался переместить его каталог, и когда Wordpress переходит на следующую тему по умолчанию, все работает нормально. Если я снова скопирую каталог темы в themes/, начнется та же проблема. Так как у меня много ошибок blocked:mixed:content, я ищу в каталоге темы, используя grep -rnw '/usr/share/nginx/html/website.com/wp-content/themes/themename/' -e 'http', и нахожу огромное количество строк, содержащих http. Я знаю, что есть много плагинов, которые это исправляют, но поскольку я получаю сообщение об ошибке 403 при входе в wp-admin, как я могу заменить все эти http на https?


person Alain Alemany    schedule 26.12.2016    source источник
comment
что на самом деле происходит   -  person Vasim Shaikh    schedule 26.12.2016
comment
Я не читал вопрос. Вы очистили кеш браузера?   -  person    schedule 26.12.2016
comment
Да, @ILoveCSS, я очистил его, и ничего.   -  person Alain Alemany    schedule 26.12.2016
comment
Я могу предложить еще одну вещь, откройте новое окно в режиме инкогнито и попробуйте. Обратите внимание, что новое окно в режиме инкогнито отличается от новой вкладки в режиме инкогнито.   -  person    schedule 26.12.2016
comment
Спасибо за ваши комментарии @ILoveCSS. Окно инкогнито показывает то же самое.   -  person Alain Alemany    schedule 26.12.2016
comment
Вы изменили URL-адреса в общих настройках? Думаю, они должны быть HTTPS://что угодно....   -  person Felipe Alameda A    schedule 26.12.2016
comment
Да, @FelipeAlamedaA, как я уже говорил, я делаю это с помощью MySQL или напрямую в wp-admin.php, но тогда я получаю ошибку net::ERR_TOO_MANY_REDIRECTS в браузерах.   -  person Alain Alemany    schedule 26.12.2016


Ответы (1)


Чтобы включить SSL для WordPress, вы можете сделать одно из двух ниже.

  1. Отредактируйте настройки URL-адреса САЙТА и ДОМАШНЕГО САЙТА в разделе Настройки -> Общие панели инструментов WordPress, изменив http на https.

  2. Отредактируйте файл wp-config.php и определите как WP_SITEURL, так и WP_HOME.

    define( 'WP_SITEURL', 'https://example.com' ); и define( 'WP_HOME', 'https://example.com' );

Вы также должны добавить это в свой wp-config.php force ssl для wp-admin.

define('FORCE_SSL_ADMIN', true);
person Tunji    schedule 26.12.2016