老实说,我不知道一个更具有试探性和暗示性的标题,所以......对所有主持人提前抱歉。
好的,所以我配置正确让我们用Nginx加密到我的网站。完成后,我会在典型的blocked:mixed:content
(BMC)问题中看到没有CSS,JS等的网站。 BMC很容易修复,你检查wordpress URL配置加上一两件东西。
所以这里的事情开始变得复杂。只有在我成功登录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"
(假IPs BTW)
到目前为止,一切都只是一个信息,我无法看到有关错误的唯一有用信息。
我已使用旧http
网址配置了我的Wordpress安装,因此在无法进入信息中心后,我可以直接使用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
的大量行。我知道有很多插件可以解决这个问题,但是因为我在登录wp-admin后遇到错误403,如何将所有http
替换为https
?
答案 0 :(得分:0)
要为wordpress启用SSL,您可以执行以下两项中的任何一项
在设置 - >中修改您的SITE和HOME网址设置。 wordpress仪表板的常规部分,将 http 更改为 https。
编辑您的wp-config.php并定义 WP_SITEURL 和 WP_HOME
define( 'WP_SITEURL', 'https://example.com' );
和 define( 'WP_HOME', 'https://example.com' );
您还应该将此添加到wp-config.php强制ssl for wp-admin
define('FORCE_SSL_ADMIN', true);