Cotonti / Open Source PHP Content Management FrameworkContent Management Framework

Forums / National / Russian / Тех. поддержка / проблема после установки ssl на сайт.

12>>>

в канонических урлах и в карте сайта появился порт :80

Grey
#1 2016-04-18 15:58

 

Привет, появилась проблема после установки ssl на сайт... в канонических урлах и в карте сайта появился порт :80 , при восстановлении пароля также добавляется в ссылку и ведет как результат на пустую страницу....
прошу помощи

ps строки в system/common.php соответствуют

65 $sys['port'] = $_SERVER['SERVER_PORT'];

70 $sys['port'] =$url['port'];

Macik
#2 2016-04-18 17:32

Версия какая?  

Что приписано в `$cfg['mainurl']`?

Каково значение `$cfg['multihost']`?

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Grey
#3 2016-04-18 18:43

$cfg['multihost'] = FALSE;

а mainurl c https

Added 4 minutes later:

временно решил вопрос так

заменнил 

$sys['abs_url'] = $sys['scheme'] . '://' . $sys['host'] . ($sys['port']?':'.$sys['port']:'') . $sys['site_uri'];
$sys['canonical_url'] = $sys['scheme'] . '://' . $sys['host'] . ($sys['port']?':'.$sys['port']:'') . cot_url_sanitize($_SERVER['REQUEST_URI']);

на

$sys['abs_url'] = $sys['scheme'] . '://' . $sys['host'] . $sys['site_uri'];
$sys['canonical_url'] = $sys['scheme'] . '://' . $sys['host'] . cot_url_sanitize($_SERVER['REQUEST_URI']);

 

зы версия freelance 2.6.9

Macik
#4 2016-04-19 21:12
  1. Версию ядра можно увидеть на главной странице админки
  2. Проверил на локальной машине последнюю RC1 версию — никаких портов не вылазит.
  3. Порты по умолчанию (80 для HTTP и 443 для HTTPS) отбрасываются (не отображаются системой в путях). Другие номера портов (указанные в `$cfg['mainurl']` или полученные от сервера через переменную `$_SERVER['SERVER_PORT']`) указываются в путях явно. Эта логика справедлива для последних версий, поэтому см. сл. пункт. 
  4. Посмотрите внимательно вот эту (закрытую) заявку №1474, возможно она затрагивает ваш случай.


Подытоживая указанные пункты могу предположить, что сервер у вас настроен таким образом, что отдает HTTPS трафик по 80-му порту, что отражается в переменной `$_SERVER['SERVER_PORT']` и соответственно попадает в некоторые URL.

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kailo
#5 2016-10-26 15:32

Можно привести общие настройки для перевода сайта на https? Сертификат поставили, но при наборе https://сайт.ру виден только текст, картинки и css не отображаются. Что должно быть в `$cfg['mainurl']` - протокол, сайт и порт обязательно? Какие параметры в htaccess, common.php? Почему sitemap.xml выдает такое:

<url><loc>https://сайт.ru:80/</loc><changefreq>weekly</changefreq></url>

 

Macik
#6 2016-10-26 17:11

В `$cfg['mainurl']`прописать сайт с «https» (т.е. указание протокола обязательно. Порт если стандартный 443 можно не указывать).

По .htaccess надо настроить редирект с простого на SSL — вот тут товарищ постил свои настройки на эту тему.

По последнему вопросу — не понял.

Добавлено 3 минуты спустя:

зы:  Если надо, чтобы сайт корректно работал на обоих протоколах → в config.php включаем режим multihost (инфо):

$cfg['multihost'] = TRUE;

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kailo
#7 2016-10-26 18:46

Сделал. Однако: "При соединении с сайт.ru:80 произошла ошибка. SSL получило запись, длина которой превышает максимально допустимую. Код ошибки: SSL_ERROR_RX_RECORD_TOO_LONG". Это при нажатии ссылки на страницу сайта с главной "https", в которой нет картинок и css. Почему на 80 порт ведет? Кеширование отключено полностью. Хостеры говорят, что у них с такими, что есть,  настройками сервера все сайты с сертификатами работают нормально.

Options -Indexes
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www.cайт\.ru$ [NC]
RewriteRule ^(.*)$ http://сайт.ru/$1 [R=301,L]

# Prevent to load sensible data
<FilesMatch "\.(dat|tpl|inc)$">
order deny,allow
deny from all
</FilesMatch>

# Sitemap shortcut
RewriteRule ^sitemap\.xml$ index.php?r=sitemap [L]

# Admin area and message are special scripts
RewriteRule ^admin/([a-z0-9]+) admin.php?m=$1 [QSA,NC,NE,L]
RewriteRule ^(admin|login|message)(/|\?|$) $1.php [QSA,NC,NE,L]

# System category has priority over /system folder
RewriteRule ^system/?$  index.php?rwr=system [QSA,NC,NE,L]

# All the rest goes through standard rewrite gateway
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]+) index.php?rwr=$1 [QSA,NC,NE,L]

<IfModule mod_headers.c>
Header always append X-Frame-Options SAMEORIGIN
</IfModule>

Что-то, чую, здесь надо изменить. Хотя к https здесь ничего не относится.

Добавлено 6 минут спустя:

По той ветке - htaccess - делал и как в шапке, и в последнем посте - все равно то же самое

Добавлено 2 часа спустя:

Правильный редирект на https всех страниц нашел:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

вместо первых пяти строчек, но теперь все равно ни картинок, ни разметки CSS  нет....

и SSL_ERROR_RX_RECORD_TOO_LONG тоже осталась.

Добавлено 17 часов спустя:

История тикета

Абонент ID (27.10.2016 18:22:04)

При установке на сайт сертификата ssl сервер настроен с ошибками, трафик отдается по 80 порту, сайт отражается неправильно, без картинок и CSS.

Технический отдел (27.10.2016 18:57:34)

Здравствуйте, как я и говорил - статика не отдается из за изменений в коде сайта. Если посмотреть на код страницы, полученной по протоколу https - можно увидеть следующие строки -

https://сайт.ru:80/images/icons/default/logo.png

Именно поэтому изображения и css не отображаются, так как клиент не может их получить. Если же взять любое изображение и удалить из ссылки порт 80,  изображение откроется нормально.

 Как порт 80 из ссылок убрать, кто-нибудь сообщит? Баг-то CMS, а не хостера. Релиз последний, common.php исправлен.

Добавлено 12 минут спустя:

#41614 Grey:

$cfg['multihost'] = FALSE;

а mainurl c https

Added 4 minutes later:

временно решил вопрос так

заменнил 

$sys['abs_url'] = $sys['scheme'] . '://' . $sys['host'] . ($sys['port']?':'.$sys['port']:'') . $sys['site_uri'];
$sys['canonical_url'] = $sys['scheme'] . '://' . $sys['host'] . ($sys['port']?':'.$sys['port']:'') . cot_url_sanitize($_SERVER['REQUEST_URI']);

на

$sys['abs_url'] = $sys['scheme'] . '://' . $sys['host'] . $sys['site_uri'];
$sys['canonical_url'] = $sys['scheme'] . '://' . $sys['host'] . cot_url_sanitize($_SERVER['REQUEST_URI']);

 

зы версия freelance 2.6.9

Заработало - файл common.php, строки 78-79. Наверное, не временно нужно это сделать, а постоянно.

Из сайтмапа порт тоже пропал.


This post was edited by Kailo (2016-10-27 18:56, 1 year ago)
Roffun
#8 2016-10-27 15:16
#42247 Kailo: Заработало - файл common.php, строки 78-79.

Так вам и ответили выше, насчет настроек. Файл .htaccess я в этом посте описал готовый вариант, в том числе удаление дублей  - www , index(php|html|htm).

А насчет порта 80, вам тоже ответили выше:

#41615 Macik:

Посмотрите внимательно вот эту (закрытую) заявку №1474, возможно она затрагивает ваш случай.

А насчет:

#42247 Kailo:

зы версия freelance 2.6.9

Заработало - файл common.php, строки 78-79. Наверное, не временно нужно это сделать, а постоянно.

Оно и так сделано "постоянно" в актуальном дистрибутиве, просто вы используете стороннюю разработку, обновление которой никак не связано с официальной сборкой, к тому же устаревшую версию 2.6.9 , а судя по информации на сайте разработчика биржи, последняя версия 2.7.1. (автор заявлял ранее что больше не поддерживает ее).

Kailo
#9 2016-10-27 18:55

Вы разберитесь сначала с сабжем, потом пишите. Настройки, указанные выше, я поменял, сайт все равно отображался неправильно. Заявка 1474 меняет строки 65 и 70, а Grey поменял 78-79. Причина (баг CMS) именно в них. Далее, откуда Вы взяли, что я использую? Я использую последнюю версию Котонти 0.9.19, скачанную с этого сайта, и у меня нет никаких бирж. И код в строках 78-79 в этой официальной версии как раз такой, что привеп Grey. Ваши директивы в .htaccess у меня не работают, тем более они не совместимы с теми, что использует urleditor. Водку в моем городе паленую давно уже в магазинах не продают; если в вашей стране с черным флагом это еще так, то это Ваши проблемы. Рабочий .htaccess:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Prevent to load sensible data
<FilesMatch "\.(dat|tpl|inc)$">
order deny,allow
deny from all
</FilesMatch>

# Sitemap shortcut
RewriteRule ^sitemap\.xml$ index.php?r=sitemap [L]

# Admin area and message are special scripts
RewriteRule ^admin/([a-z0-9]+) admin.php?m=$1 [QSA,NC,NE,L]
RewriteRule ^(admin|login|message)(/|\?|$) $1.php [QSA,NC,NE,L]

# System category has priority over /system folder
RewriteRule ^system/?$  index.php?rwr=system [QSA,NC,NE,L]

# All the rest goes through standard rewrite gateway
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]+) index.php?rwr=$1 [QSA,NC,NE,L]

<IfModule mod_headers.c>
Header always append X-Frame-Options SAMEORIGIN
</IfModule>

 


This post was edited by Kailo (2016-10-27 19:03, 1 year ago)
Roffun
#10 2016-10-27 19:38
#42251 Kailo:

Вы разберитесь сначала с сабжем, потом пишите. Настройки, указанные выше, я поменял, сайт все равно отображался неправильно. Заявка 1474 меняет строки 65 и 70, а Grey поменял 78-79. Причина (баг CMS) именно в них. Далее, откуда Вы взяли, что я использую? Я использую последнюю версию Котонти 0.9.19, скачанную с этого сайта, и у меня нет никаких бирж. 

 ?

#42247 Kailo:

зы версия freelance 2.6.9

Заработало - файл common.php, строки 78-79. Наверное, не временно нужно это сделать, а постоянно.

p.s. Процитированное другим пользователем не меняется, если вы затираете свой пост.

#42251 Kailo:

Водку в моем городе паленую давно уже в магазинах не продают; если в вашей стране с черным флагом это еще так, то это Ваши проблемы.

Поосторожнее со словами, Kailo

 

Denisbox
#11 2016-10-28 07:04

Kailo

А не клон ли вы krickx - а, очень на то похоже по вашим поведенческим факторам?

contact: fonts (at) otlab . ru
Macik
#12 2016-10-28 11:43
  1. это вряд ли клон.
  2. давайте не скатываться во флуд.
  3. тов. Kailo — вам предупреждение. Если хотите продолжать задавать вопросы, и главное получать ответы — отнеситесь к окружающим с уважением.

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kailo
#13 2016-10-28 14:04

Так я со всей душой, не только с уважением. Вот исправленный код из заявки 1474:

$sys['port'] = $_SERVER['SERVER_PORT'];
 }
 }
 else
 else
 {
 {
 	$sys['host'] = $url['host'];
 	$sys['host'] = $url['host'];
-	$sys['port'] = empty($url['port']) || $_SERVER['SERVER_PORT'] == 80 ? '' : $url['port'];
+	$sys['port'] = $url['port'];
 }
 }
+$def_port = $sys['secure'] ? 443 : 80;
+$sys['port'] = $sys['port'] == $def_port ? '' : $sys['port'];

В версии 0.9.19, что у меня работает, этот код уже присутствует - заявка февральская, релиз июньский. На добавление в ссылки сайта порта 80 этот код не влияет. После изменений в этом же файле строчек 78-79 -

$sys['abs_url'] = $sys['scheme'] . '://' . $sys['host'] . ($sys['port']?':'.$sys['port']:'') . $sys['site_uri'];
$sys['canonical_url'] = $sys['scheme'] . '://' . $sys['host'] . ($sys['port']?':'.$sys['port']:'') . cot_url_sanitize($_SERVER['REQUEST_URI']);

на

$sys['abs_url'] = $sys['scheme'] . '://' . $sys['host'] . $sys['site_uri'];
$sys['canonical_url'] = $sys['scheme'] . '://' . $sys['host'] . cot_url_sanitize($_SERVER['REQUEST_URI']);

что сделали Grey и я - баг пропал, т.е. сайт стал работать нормально. Версия freelance 2.6.9 - это у него, а не у меня.

Какое еще уважение нужно? Клон - это как? krickx - это кто? Я здесь недавно, и вообще филолог, так что не обессудьте.

 

Macik
#14 2016-10-30 02:38
#42259 Kailo:

что сделали Grey и я - баг пропал, т.е. сайт стал работать нормально.

То, что сделали вы — это заглушили ошибку, причем очень локально. О чем свидетельствует та же проблема с sitemap. 

Проблема здесь скорее всего в том, что у провейдера настроен обратный прокси и на сервере не прописаны «обычные» для таких случаев заголовки. Поэтому система не может полноценно определить режим работы (т.е. получить информацию о протоколе и прочих параметрах оригинального запроса) — отсюда и нестыковки.

Для более подробного анализа — пришлите содержимое переменной $_SERVER с вашего сайта. Проще всего это сделать через вывод прямо на страницу (вставьте код в `index.tpl`) :

<!-- IF {PHP.usr.id} = 1 -->
	<pre>{PHP._SERVER|print_r($this,1)}</pre>
<!-- ENDIF -->

Далее зайдите под админом и скопируйте вывод.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kailo
#15 2016-10-30 10:49

Вроде ничего особенного в заголовках:

[FCGI_ROLE] => RESPONDER
    [REDIRECT_HTTPS] => on
    [REDIRECT_HANDLER] => php-fastcgi
    [REDIRECT_STATUS] => 200
    [HTTPS] => on
    [HTTP_X_FORWARDED_PROTO] => https
    [HTTP_CONNECTION] => close
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
    [HTTP_ACCEPT_ENCODING] => gzip, deflate, br
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache
    [REDIRECT_URL] => /index.php
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.0
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /
    [SCRIPT_NAME] => /index.php
    [ORIG_PATH_INFO] => /index.php
    [ORIG_SCRIPT_NAME] => /php-bin/php.fcgi
    [PHP_SELF] => /index.php
    [REQUEST_TIME] => 1477822709
    [argv] => Array
        (
        )

    [argc] => 0
)

проблема с sitemap прекратилась вместе с основной, после операции c кодом Grey.

12>>>