Слишком много перенаправлений на установку Magento - Nginx / centos

584
Joshi

У меня установлена ​​версия 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; } 
0

1 ответ на вопрос

0
Anaksunaman

Я заметил, что это только 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

Похожие вопросы