Jump to content

Редирект с адреса https на http (SSL, 302 Moved)


RUSZoZo

Recommended Posts

Прошу помощи разобраться в чем может быть проблема.

 

Перерыл в интернете все что возможно, перепробовал тоже все возможные варианты, но ничего не помогает.

 

 

По настройкам.

SSL включен.

 

ЧПУ включен, пробовал и выключать.

Включал и отключал apache miltiviews, mod security.

Канонический URL - указаны Без редиректов, 302 и 301 пробовал...

 

Вообщем делал имитацию чистого движка... Ничего не помогает.

 

htacces - по умолчанию, который создается автоматически.

 

Ковырял файлик FrontController, удалял условия // If we call a SSL controller without SSL or a non SSL controller with SSL, we redirect with the right protocol.

 

Все равно идет редирект, и не могу найти где копать, что делать...

 

Prestashop обновлял через систему обновления с 1.5 на 1.6

 

Буду рад за любую помощь!

Link to comment
Share on other sites

Обновите кеш престы и браузера после, попробуйте заново, при включении в .htaccess должны добавиться условия. Еще если у Вас nginx стоит то его тоже надо настроить под поддержку SSL. По умолчанию там же стоят условия что делать при обращении по 80 порту, а надо сделать правило и для 443 порта.

Link to comment
Share on other sites

Все тщетно. Обновлял, файлы кэша с ftp удалял. Пробовал и с другого компа зайти на сайт. Думаю дело не в кеше.

 

htaccess генерируется автоматически, туда ничего своего не добавлял.

 

При обращении https://domain/phpinfo.php к примеру - сайт отображает файл, а при обращении к движку - идет редирект.

 

Например к крону, https://domain/module/bla-lbalba/generate?cron=1 редиректит на главную страницу со значеним ?cron=1

HTTP/1.1 302 Moved
Date: Thu, 15 May 2014 12:05:28 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 0
Connection: keep-alive
Keep-Alive: timeout=5
Server: Apache
Location: http://domain/?cron=1


HTTP/1.1 200 OK
Date: Thu, 15 May 2014 12:05:30 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=5
Server: Apache
P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"
Content-Encoding: gzip

Edited by RUSZoZo (see edit history)
Link to comment
Share on other sites

Сейчас установил чистый движок на хостинг.

 

При установке попробовал открыть через https://domain/install - все хорошо, файлы отрабатывают.

Установка произошла успешно на http дабы не рисковать.

 

После, включить SSL через "Общие настройки" - не удалось, установил в базе значение "1". Все включилось.

 

Но при открытие к категории в https снова редиректит на главную с 302, ЧПУ отключен, кэш очищал...

 

Удалил условия:

		// If we call a SSL controller without SSL or a non SSL controller with SSL, we redirect with the right protocol
		if (Configuration::get('PS_SSL_ENABLED') && $_SERVER['REQUEST_METHOD'] != 'POST' && $this->ssl != Tools::usingSecureMode())
		{	
			header('HTTP/1.1 301 Moved Permanently');
			header('Cache-Control: no-cache');
			if ($this->ssl)					
				header('Location: '.Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']);
			else						
				header('Location: '.Tools::getShopDomain(true).$_SERVER['REQUEST_URI']);
			exit();
		}

За счет этого прекратилось цикличность переходов страниц с https 302 на http, http 301 на https и так по кругу.

 

После удаления строк, цикличность прекратилось он все равно редиректит... 

 

Кто-то встречался уже с подобным? Может дело и не в движке?

 

 

Edited by RUSZoZo (see edit history)
Link to comment
Share on other sites

Ох... Установил 1.5.6.2 по умолчанию. Все та же проблема... Правда тестовые движки ставил в папку домена /domain/test/prestashop

 

Куда и где копать, люди добрые?! ;)))

Link to comment
Share on other sites

Интересно... Установил и 1.5 и 1.6, ничего не работает... Установил Wordpress - та же проблема. Установил Drupal - переадресация не сработала, то есть, сайт начал открываться на https.

 

Но, судя по статье http://www.prestashop.com/blog/en/guest-blogger-series-prestashop-ssl-installation-troubleshooting где написано "Click on Please click here to use HTTPS protocol before enabling SSL." - У меня не включается просто по нажатию на ссылку, я включал https через БД. 

 

Видимо самоподписаной SSL сертификат на престашопе не работает?

Link to comment
Share on other sites

Прошло не мало дней. Быть может кому-то поможет моя проблема. Проблема решена и можно закрывать вопрос.

 

Вариант решения:

 

Со стороны скрипта: в файле config/config.inc.php надо вверху добавить следующий код:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) AND $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
{ $_SERVER['HTTPS'] = 'on'; }
$_SERVER['HTTP_HOST']=str_replace(':443','',$_SERVER['HTTP_HOST']);

Со стороны nginx добавить в нужный location:

proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

Помимо включения SSL в админке, можно по желанию в .htaccess добавить:

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...