Magento 安装中的重定向过多 - Nginx/centos

Magento 安装中的重定向过多 - Nginx/centos

我安装的是 Magento 1.9.3.1 版本。直到昨天它还运行良好,但现在首页无法正常工作,并出现错误 - 重定向次数过多。

在控制台(firebug)中进一步检查后,我可以看到所有文件都显示为永久移动,并且还在浏览器地址的站点名称末尾添加了一个额外的斜杠 / ,即两个斜杠。此外,在控制台中,所有获取页面都显示为 //

更新:

我发现只有在 home-page/index.php 上才会遇到这个问题。例如,如果我访问 site/category-name,它就可以正常工作。

我尝试使用以下方法修复该问题:

if(!$_SERVER['HTTPS'] || strtolower($_SERVER['HTTPS']) != 'on' ){
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: https://' . str_replace('www.','',$_SERVER['HTTP_HOST']) . $_SERVER['REQUEST_URI']);
    exit();
}

但那也不起作用。

进一步更新:

如果我使用 domain.com/index 或 domain.com/index.php/index 我可以访问该网站而无需

重定向错误过多

或者

永久移动错误

相关conf文件内容:

server {
        listen 80;

        server_name www.sub.domain.com;
        #server_name sub.domain.com;
        #rewrite ^(.*) http://sub.domain.com$1 permanent;
}

server {
        listen 80 default;
        listen 443 ssl;
         server_name www.sub.domain.com;
          #ssl        on;
          #ssl_certificate         /key/domain.com.pem;
          #ssl_certificate_key     /key/domain.com.key;

        # access_log off;
        access_log /home/sub.domain.com/logs/access.log;
        # error_log off;
        error_log /home/sub.domain.com/logs/error.log;

        root /home/sub.domain.com/public_html;
        index index.php index.html index.htm;
        server_name sub.domain.com;

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

答案1

我发现只有home-page/index.php我才会遇到这个问题。例如,如果我访问site/category-name它,它工作正常。

我不能肯定地说这是否是导致您重定向问题的原因(可能是其他地方配置错误),但您有四个server_name指令(其中两个是活动的双倍www.sub.domain.com),但实际上您只需要一个。

尝试这个编辑过的.conf文件:

#server {
        #listen 80;

        #server_name sub.domain.com www.sub.domain.com;
        #rewrite ^(.*) http://sub.domain.com$1 permanent;
#}

server {
        listen 80 default;
        listen 443 ssl;
        server_name sub.domain.com www.sub.domain.com;
        #ssl        on;
        #ssl_certificate         /key/domain.com.pem;
        #ssl_certificate_key     /key/domain.com.key;

        # access_log off;
        access_log /home/sub.domain.com/logs/access.log;
        # error_log off;
        error_log /home/sub.domain.com/logs/error.log;

        root /home/sub.domain.com/public_html;
        index index.php index.html index.htm;

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

笔记

nginx 的基本规则是server_name每个服务器块一个指令(与带有ServerName和 的Apache 不同ServerAlias)。该指令可以指定多个主机名。

如果您想要对主域和辅助(子)域进行不同的配置,则它们应该位于单独的服务器块中,例如:

server {
        listen 80;

        server_name sub.domain.com;
        # ...other stuff...
}

server {
        listen 80;

        server_name www.sub.domain.com;
        # ...other stuff... 
}

资源 http://nginx.org/en/docs/http/server_names.html

相关内容