https по шагам
Доброго вечера, просьба поделиться ссылкой или объяснить безболезненный по этапный переход=подключение https. Заранее спасибо
Комментарии: 6
Во первых реши вопрос с сертификатом у регистратора (закажи, установи на хостинг),
после нужно в настройках MODX -> Core -> Система и сервер -> в server_protocol поставить «https», далее
в корне сайта файл-".htaccess " ставишь:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* %{SERVER_NAME}%{REQUEST_URI} [R,L]
или
Вот готовый .htaccess -> «но учти что переадресацию с www. я ставил в настройках хостинга.»
И готово!
после нужно в настройках MODX -> Core -> Система и сервер -> в server_protocol поставить «https», далее
в корне сайта файл-".htaccess " ставишь:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* %{SERVER_NAME}%{REQUEST_URI} [R,L]
или
Вот готовый .htaccess -> «но учти что переадресацию с www. я ставил в настройках хостинга.»
# MODX supports Friendly URLs via this .htaccess file. You must serve web
# pages via Apache with mod_rewrite to use this functionality, and you must
# change the file name from ht.access to .htaccess.
#
# Make sure RewriteBase points to the directory where you installed MODX.
# E.g., "/modx" if your installation is in a "modx" subdirectory.
#
# You may choose to make your URLs non-case-sensitive by adding a NC directive
# to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
RewriteEngine On
RewriteBase /
AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
</IfModule>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
php_flag register_globals Off
php_flag magic_quotes_gpc Off
php_value magic_quotes_gpc Off
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
# Make sure .htc files are served with the proper MIME type, which is critical
# for XP SP2. Un-comment if your host allows htaccess MIME type overrides.
#AddType text/x-component .htc
# If your server is not already configured as such, the following directive
# should be uncommented in order to set PHP's register_globals option to OFF.
# This closes a major security hole that is abused by most XSS (cross-site
# scripting) attacks. For more information: http://php.net/register_globals
#
# To verify that this option has been set to OFF, open the Manager and choose
# Reports -> System Info and then click the phpinfo() link. Do a Find on Page
# for "register_globals". The Local Value should be OFF. If the Master Value
# is OFF then you do not need this directive here.
#
# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
#
# Your server does not allow PHP directives to be set via .htaccess. In that
# case you must make this change in your php.ini file instead. If you are
# using a commercial web host, contact the administrators for assistance in
# doing this. Not all servers allow local php.ini files, and they should
# include all PHP configurations (not just this one), or you will effectively
# reset everything to PHP defaults. Consult www.php.net for more detailed
# information about setting PHP directives.
#php_flag register_globals Off
# For servers that support output compression, you should pick up a bit of
# speed by un-commenting the following lines.
#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5
# The following directives stop screen flicker in IE on CSS rollovers. If
# needed, un-comment the following rules. When they're in place, you may have
# to do a force-refresh in order to see changes in your designs.
#ExpiresActive On
#ExpiresByType image/gif A2592000
#ExpiresByType image/jpeg A2592000
#ExpiresByType image/png A2592000
#BrowserMatch "MSIE" brokenvary=1
#BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
#BrowserMatch "Opera" !brokenvary
#SetEnvIf brokenvary 1 force-no-vary
И готово!
Здесь важно учесть следующий момент: проиндексирован http-сайт уже или нет. Если нет, то можно смело сразу зарубать на https с настройкой редиректа. А если да, то такая процедура запросто может выбить сайт из индекса на месяц-два, а то и больше (что вряд ли кому-то понравится). Дело в том, что http — Это 80-ый порт, а https — 443. Для поисковиков это разные сайты (технически ведь на разных портах могут быть разные сайты и может быть разный контент). И получается, что новый сайт еще не проиндексирован, а новый (https) еще не индексированный. По этой причине надо делать сайт доступным и по http и по https. Но тут возникает еще один момент: Страницы в MODX кешируются и могут возникать случаи, когда на http-страницах все ссылки на https и наоборот. Если с https-ссылками http- страницах еще не особо страшно, то на https-страницах это может приводить к тому, что часть контента просто не будет подгружаться (браузер заблокирует соединения на http с https-страниц). Я в таких случаях на сайте прописываю такой плагин:
Важно: на разных хостингах вместо $_SERVER['SERVER_PORT'] может быть другой параметр, надо смотреть индивидуально
Тогда сайт не будет потерян поисковиком и не вызовет выпода из индекса.
В robots.txt еще надо прописать жестко Host: site_domain.
После этого месяца через три (когда поисковики полностью перестроят индексы), можно уже будет настроить и редирект.
if($modx->context->key == 'mgr'){
return;
}
switch($modx->event->name){
case 'OnMODXInit':
// case 'OnHandleRequest':
if(!empty($_SERVER['SERVER_PORT']) AND $_SERVER['SERVER_PORT'] == '443'){
$modx->setOption('server_protocol', 'https');
$modx->setOption('site_url', 'https://' . $modx->getOption('http_host', null) . $modx->getOption('base_url', null));
$cache_prefix = $modx->getOption('cache_prefix', null, '/') . '443/';
$modx->setOption('cache_prefix', $cache_prefix);
}
break;
}
Суть его в том, чтобы кеш-префикс поменять для https-запросов. Важно: на разных хостингах вместо $_SERVER['SERVER_PORT'] может быть другой параметр, надо смотреть индивидуально
Тогда сайт не будет потерян поисковиком и не вызовет выпода из индекса.
В robots.txt еще надо прописать жестко Host: site_domain.
После этого месяца через три (когда поисковики полностью перестроят индексы), можно уже будет настроить и редирект.
Мы с коллегами встретили неприятную багу при генерации ссылок, если писать [[~id &scheme='full']] то MODX генерирует ссылку с http не смотря на то, что в настройках server_protocol указан https.
Может кто встречал такое? На первый взгляд в код кажется, что протокол учитывается, но не работает. Приходится хардкодить протокол в шаблонах и чанках, что как бы не true
Может кто встречал такое? На первый взгляд в код кажется, что протокол учитывается, но не работает. Приходится хардкодить протокол в шаблонах и чанках, что как бы не true
Добавьте в настройках контекста параметр site_url со значением
https://site.tld/
Спасибо за решение! Если кому-то захочется узнать не только что, но и почему почему надо сделать, то ответ я нашел в официальной документации: modX.makeUrl
В комментарии выше написали верно.
после нужно в настройках MODX -> Core -> Система и сервер -> в server_protocol поставить «https»
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.