Честно говоря, я понятия не имею о более предварительном и наводящем на размышления названии, так что... извините перед всеми модераторами заранее.
Итак, я правильно настроил 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
?