php - Magento nginx ssl 重定向循环错误

标签 php redirect ssl nginx magento-1.7

我在 nginx 服务器上安装了 magento 1.7。每当我从 magento admin 为前端启用 SSL 时,页面都会出现错误:

错误:此网页有重定向循环

我尝试了以下解决方案但没有成功:

网址:https://www.sonassi.com/knowledge-base/magento-kb/magento-https-redirect-loop/

我的 Magento 设置可能有什么问题:

  1. 验证 session 设置已关闭。
  2. 已安装 SSL 证书
  3. 已经定义了安全和不安全的 url。

我的nginx.conf是

user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;

events {
worker_connections  1024; }


 http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

#
# The default server
#
server {
    listen       80;
    server_name  _;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;

最佳答案

我们在 Magento 上遇到过类似的问题。它通常通过清除您的网站 cookie 来修复。所以我找到了这个清除域的所有网站 cookie 的代码段。我把它放在主要商店 index.php 页面的顶部。它必须是第一件事,因此它不会干扰常规商店 SSL 和购物功能。 (例如 www.mysite.com/store/index.php)

    if (isset($_SERVER['HTTP_COOKIE'])) {
     $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
       foreach($cookies as $cookie) {
         $parts = explode('=', $cookie);
         $name = trim($parts[0]);
        setcookie($name, '', time()-1000);
        setcookie($name, '', time()-1000, '/');
      }
    }

关于php - Magento nginx ssl 重定向循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22910531/

相关文章:

ubuntu - 如何安装 Racket 包?

php - PHP 是否阻止了粘滞位?

PHP警告重定向

javascript - 使用 jQuery 文件上传实现所需的用户登录

javascript - 如何每10秒重定向一个页面?

javascript - 如何重定向来自特定国家/地区的用户?

ssl - 如果我同时控制服务器和客户端,可以接受自签名证书吗?

php - 在 php 中使用 wkhtmltopdf 时,特殊字符在 PDF 标题中不起作用,但在 PDF 内容中起作用

.htaccess - 如何编辑 htaccess 文件以将 http 域重写为 https?

ssl - Nginx 重定向 http ://www and naked http/https to https://www