Настройка server_protocol

Добрый день.
У меня почему-то настройка server_protocol работает наизнанку:
1. Если там поставить http, то [[++site_url]] будет выдавать адрес с httpS
2. Если там поставить httpS, то [[++site_url]] будет выдавать адрес с http
Причем в первом случае админка работает по протоколу https, а сайт по http. Может где кеш какой хитрый?
Подскажите, где исправить и как?)))
Андрей
31 октября 2016, 14:07
modx.pro
3
2 783
0

Комментарии: 11

Сергей Шлоков
31 октября 2016, 22:37
0
Я недавно переводил сайт на https. Тоже помучался с настройкой через MODX. Главное, я не смог найти, где эта настройка «server_protocol» используется, а [[++site_url]] всегда выдавал http. Плюнул и указал в base адрес напрямую через https и настроил редирект в NGINX на https. Всё работает.
    Андрей
    01 ноября 2016, 11:03
    0
    Методом проб и ошибок понял алгоритм перехода на https. Напишу, может кому пригодится:
    1. Генерируем сертификат. Это прямое отношение к MODX не имеет. Делается на стороне сервера.
    2. В админке MODX в Системных настройках находим параметр server_protocol и указываем ему значение https.
    3. В файле .htaccess настраиваем правило для https:
    RewriteCond %{SERVER_PORT} !^443
    RewriteRule (.*) https://site.ru/$1 [R=301,L]
    4. Проверяем работоспособность скриптов, потому что может случиться так, что необходимо например jquery грузить не через http, а через https (если загрузка идет со стороннего сайта). И так с другими скриптами.
    После этих манипуляций сайт переходит на https.
      Андрей
      10 ноября 2016, 21:39
      0
      Сергей, а как указать адрес напрямую с https? На гланой понятно, а на внутренних какая комбинация используется?
      https://[[~id]]
      ?
        Сергей Шлоков
        10 ноября 2016, 22:57
        0
        В теге base прописать адрес сайта href=«https:/site.ru/» вместо href="[[+site_url]]". Этот адрес должен быть прописан на всех страницах сайта.
          Андрей
          11 ноября 2016, 10:33
          0
          Да, сделал так как вы сказали, но почему-то не работают все внутренние страницы? отдают 404 ошибку…
            Сергей Шлоков
            11 ноября 2016, 21:38
            0
            Этот тег отвечает за относительные адреса в ссылках, путях картинок и т.п. Он не влияет на адрес внутренних страниц. Видимо где-то сломана переадресация.
              Андрей
              11 ноября 2016, 22:07
              0
              А может такая беда быть из-за неправильных настроек nginx?
              Вот сейчас такие настройки у меня:
              server {
              	server_name site.ru www.site.ru;
              	charset off;
              	index index.php;
              	disable_symlinks if_not_owner from=$root_path;
              	include /etc/nginx/vhosts-includes/*.conf;
              	include /etc/nginx/vhosts-resources/site.ru/*.conf;
              	access_log /var/www/httpd-logs/site.ru.access.log;
              	error_log /var/www/httpd-logs/site.ru.error.log notice;
              	ssi on;
              	set $root_path /var/www/XXX/data/www/site.ru;
              	root $root_path;
              	listen xxx.xxx.xxx.xx:80;
              	location / {
              		location ~ [^/]\.ph(p\d*|tml)$ {
              			try_files /does_not_exists @fallback;
              		}
              		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
              			try_files $uri $uri/ @fallback;
              		}
              		location / {
              			try_files /does_not_exists @fallback;
              		}
              	}
              	location @fallback {
              		proxy_pass http://127.0.0.1:8080;
              		proxy_redirect http://127.0.0.1:8080 /;
              		proxy_set_header Host $host;
              		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              		proxy_set_header X-Forwarded-Proto $scheme;
              		access_log off;
              	}
              	gzip on;
              	gzip_comp_level 6;
              	gzip_disable "msie6";
              	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
              	return 301 https://$host:443$request_uri;
              }
              server {
              	server_name site.ru www.site.ru;
              	ssl on;
              	ssl_certificate "/var/www/httpd-cert/XXX/site.ru_le1.crtca";
              	ssl_certificate_key "/var/www/httpd-cert/XXX/site.ru_le1.key";
              	ssl_ciphers XXXXX+XXXXXX:XXX+XXXXXX:XXXXXX+XXXXX:XXXXXX+XXX;
              	ssl_prefer_server_ciphers on;
              	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
              	add_header Strict-Transport-Security "max-age=31536000;";
              	charset off;
              	index index.php;
              	disable_symlinks if_not_owner from=$root_path;
              	include /etc/nginx/vhosts-includes/*.conf;
              	include /etc/nginx/vhosts-resources/site.ru/*.conf;
              	access_log /var/www/httpd-logs/site.ru.access.log;
              	error_log /var/www/httpd-logs/site.ru.error.log notice;
              	ssi on;
              	set $root_path /var/www/XXX/data/www/site.ru;
              	root $root_path;
              	listen xxx.xxx.xxx.xx:443;
              	gzip on;
              	gzip_comp_level 6;
              	gzip_disable "msie6";
              	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
              	location / {
              		location ~ [^/]\.ph(p\d*|tml)$ {
              			try_files /does_not_exists @fallback;
              		}
              		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
              			try_files $uri $uri/ @fallback;
              		}
              		location / {
              			try_files /does_not_exists @fallback;
              		}
              	}
              	location @fallback {
              		proxy_pass http://127.0.0.1:8080;
              		proxy_redirect http://127.0.0.1:8080 /;
              		proxy_set_header Host $host;
              		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              		proxy_set_header X-Forwarded-Proto $scheme;
              		access_log off;
              	}
              }
                Сергей Шлоков
                11 ноября 2016, 22:15
                0
                Это не ко мне. Это как если бы спросил про влияние планеты Нептун на рождаемость сурикатов в неволе.
      Роман Садоян
      31 октября 2016, 22:56
      0
      Я тоже сделал как Сергей и стал париться.
        Андрей
        10 ноября 2016, 21:37
        0
        Тема снова стала актуальной. На другом сайте столкнулся с такой же проблемой. Кто подскажет, как гарантированно избавиться от этой мороки? Почему настройки server_protokol не соответствуют тому, что выводит [[++site_url]]
          Сергей Шлоков
          10 ноября 2016, 22:54
          0
          Почему настройки server_protokol не соответствуют тому, что выводит [[++site_url]]
          Потому что эта настройка нигде не используется.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          11