Nginx:从https重定向到http,wordpress登录区域除外

Nginx:从https重定向到http,wordpress登录区域除外,wordpress,redirect,nginx,Wordpress,Redirect,Nginx,我正在尝试为wordpress安装配置Nginx。我正在使用wordpress插件wp https,它处理登录页面上从http到https的重定向。然后,我的nginx服务器如下所示: server { listen 66.175.215.82:80; listen 66.175.215.82:443 ssl; server_name some.domain.com; root /var/www; index i

我正在尝试为wordpress安装配置Nginx。我正在使用wordpress插件wp https,它处理登录页面上从http到https的重定向。然后,我的nginx服务器如下所示:

server {
        listen 66.175.215.82:80;
        listen 66.175.215.82:443 ssl;
        server_name some.domain.com; 

        root /var/www;
        index index.php index.html redirect.php;

        include /var/www/nginx.conf;

        #For HTTPS
        ssl_certificate /etc/ssl/self-signed/commons-dev.crt;
        ssl_certificate_key /etc/ssl/self-signed/commons-dev.key;
        ssl_session_timeout 5m;
        ssl_protocols SSLv3 TLSv1;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
        ssl_prefer_server_ciphers on;

        # PHP-FPM
        location ~ \.php {
                try_files $uri =404;
                include fastcgi_params;
                fastcgi_index index.php;
                fastcgi_pass php;
        }
}
问题在于:

  • 好了,Nginx不支持“not”位置,所以我不能说“对于所有没有/wp登录的页面”
  • 将批发从https重定向到http将导致重定向循环

我会删除wordpress插件,让nginx来处理这一切。将所有请求重定向到http,然后是wp-login.php的位置匹配,该匹配不起任何作用

location / {¬
    server_name some.domain.com *.some.domain.com;
    return 301 http://some.domain.com$request_uri;
}

location /wp-login.php {
}
我想您也希望将/wp admin/上的所有流量都传输到ssl。在子域上拥有所有ssl流量可能更容易:
ssl.some.domain.com
,然后禁止常规域上/wp-login.php和wp-admin区域的流量