У меня установлена версия Magento 1.9.3.1. До вчерашнего дня все работало нормально, но теперь главная страница не работает с ошибкой - слишком много перенаправлений.

При дальнейшей проверке в консоли (firebug) я вижу, что все файлы отображаются как перемещенные навсегда, а также добавляет дополнительную косую черту /, которая является двумя косыми чертами в конце имени сайта в адресе браузера. также в консоли все страницы get отображаются как //

Обновить:

Я заметил, что это только home-page/index.php, где я сталкиваюсь с этой проблемой. например, если я захожу на сайт / имя категории, он работает нормально.

Я попытался исправить это с помощью:

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 ответ1

0

Я заметил, что это только 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 на блок сервера (в отличие от Apache с ServerName и 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .