Za dużo przekierowań w instalacji Magento - Nginx / centos

0

Mam wersję instalacyjną Magento 1.9.3.1. Do wczoraj działało dobrze, ale teraz strona główna nie działa z błędem - Zbyt wiele przekierowań.

Podczas dalszego sprawdzania w konsoli (firebug) widzę, że wszystkie pliki są wyświetlane jako przeniesione na stałe, a także dodają dodatkowy slash / dwa slash na końcu nazwy witryny w adresie przeglądarki. także w konsoli wszystkie strony get są wyświetlane jako //

aktualizacja:

Zauważyłem, że to tylko strona główna / index.php, z którym borykam się z tym problemem. na przykład Jeśli mam dostęp do witryny / nazwa-kategorii, działa poprawnie.

Próbowałem to naprawić, używając:

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();
}

ale to też nie zadziałało.

Dalsza aktualizacja:

jeśli używam domeny domain.com/index lub domain.com/index.php/index, mogę uzyskać dostęp do witryny bez

za dużo błędów przekierowań

lub

przeniesiony błąd permanentny

Treść odpowiedniego pliku 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;
        }
Joshi
źródło

Odpowiedzi:

0

Zauważyłem, że to tylko home-page/index.php gdzie stoję przed tym problemem. Na przykład, jeśli mam dostęp site/category-name działa dobrze.

Nie mogę powiedzieć na pewno, czy to jest przyczyną twoich problemów przekierowania (może być coś źle skonfigurowanego gdzie indziej), ale masz cztery server_name dyrektywy (z których dwie są aktywnymi podwójnymi wersjami) www.sub.domena.com ), kiedy powinieneś jej potrzebować.

Spróbuj tego edytować .conf plik:

#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;
        }

Uwagi

Podstawową zasadą dla nginx jest jeden server_name dyrektywę na blok serwera (w przeciwieństwie do Apache z ServerName i ServerAlias ). Ta dyrektywa może zawierać wiele nazw hostów.

Jeśli chcesz mieć różne konfiguracje dla domeny podstawowej i domeny dodatkowej (podrzędnej), powinny one znajdować się w oddzielnych blokach serwera, np .:

server {
        listen 80;

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

server {
        listen 80;

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

Zasoby http://nginx.org/en/docs/http/server_names.html

Anaksunaman
źródło