Nginx HTTPS重定向异常

时间:2014-11-07 09:38:33

标签: nginx

我正在开发一个使用强制HTTPS导航的新项目,我们需要显示内容不是HTTPS的iframe。

问题来自于Nginx,我强迫使用HTTPS并重定向任何请求。

我想在URL demo.html的重写中添加一个“例外”,我不知道如何正确地做到这一点,任何帮助都非常感激。感谢

这是我们的Nginx配置文件:

server {
    listen       80;
    listen       [::]:80;
    server_name
        www.domain.com
        domain.com
      ;
    rewrite        ^ https://$server_name$request_uri? permanent;
}

server {
    listen       443 ssl spdy;
    listen       [::]:443 ssl spdy;
    server_name
        www.domain.com
        domain.com
      ;

    ### redirect www to no www with client code 301 ###
    if ($host = 'www.domain.com') {
        rewrite  ^/(.*)$  https://domain.com/$1  permanent;
    }

    root   /srv/users/public;

    proxy_set_header    Host              $host;
    proxy_set_header    X-Real-IP         $remote_addr;
    proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-SSL   on;
    proxy_set_header    X-Forwarded-Proto $scheme;
}
index index.php;

# Don't serve hidden files.
location ~ /\. {
    deny all;
}

location /
{
    try_files $uri /index.php?$args;
}

location ~ \.php$ {
  include       fastcgi_params;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

  fastcgi_param KOHANA_ENV PRODUCTION;

  fastcgi_pass  127.0.0.1:2222;

  try_files     $uri =404;
} 

1 个答案:

答案 0 :(得分:1)

最后,我将禁用所有的HTTPS重定向,并允许在没有HTTPS的情况下进行浏览。

所以我做的是强制主页为HTTPS,其余的链接I打印它们总是HTTPS,除了我需要的不使用HTTPS。我这样做了:##我们只强制HTTPS进入主页,但如果他们愿意,我们允许不使用HTTPS进行浏览。

## we only force the HTTPS to the home page but we allow to browse without HTTPS if they want to.
if ($request_uri = /) { 
  set $test  A; 
} 
if ($scheme = 'http') { 
  set $test  "${test}B"; 
} 
if ($test = AB) { 
    rewrite  ^/(.*)$  https://yclas.com/$1  permanent;
} 
## END if Hack