COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Руководство для перехода на SSL (HTTPS)


RHCk

Recommended Posts

5 часов назад, RHCk сказал:

Просьба проверить у себя (у кого настроен SSL).

После проделывания описанного в шапке, все редиректы работают правильно.

Но если вставить в строку браузера ссылку на фото товара или на robots.txt (причем тот же robots.txt доступен по всем 4 адресам - "с www и без" и "с ssl и без"), например, то редирект не срабатывает (ощущение, что проблема в точке "." в адресе).

В чём причина?

 

P.S. Уважаемый @19th19th, покажите свой .htaccess :) (у вас такой проблемы не обнаружил).

хостинг ukraine.com.ua?

Ссылка на комментарий
Поделиться на других сайтах

6 часов назад, jvz сказал:

у ukraine такая настройка есть

 У Timeweb так сделано по умолчанию, без возможности изменить, поэтому они рекомендуют вот что:

Скрытый текст

На наших серверах используется схема работы, при которой запросы к статичным файлам (в частности, txt, pdf и zip) обрабатываются с помощью Nginx, а остальные запросы передаются Apache. Поэтому файл .htaccess не может использоваться для отключения доступа к статическим файлам типа robots.txt или реализации перенаправления, так как он обрабатывается только на уровне Apache.

Для решения вопроса рекомендуется использовать следующий вариант:
- в скриптах сайта можно использовать ссылки на файлы, которые физически отсутствуют (например, для файлов на сервере использовать формат pdx);
- осуществлять перенаправления с таких файлов на существующие при помощи .htaccess.

При использовании описанного способа запрос будет обрабатываться Apache, и инструкции в .htaccess будут вступать в силу.

 

UPD После переписки с ТП вопрос был решён.

Скрытый текст

При включении редиректа http -> https в панели управления хостингом, редирект устанавливается в конфигах Nginx. Статические файлы обрабатываются с помощью веб-сервера Nginx. Соответственно, редирект будет работать и для статических файлов, в том числе и для файлов .txt.

 

Поэтому, для тех у кого хостинг от Timeweb, наиболее корректным будет сделать так:

  • в .htaccess добавить редирект "с www на без www" (или наоборот);
  • в ПУ включить редирект HTTP -> HTTPS
Ссылка на комментарий
Поделиться на других сайтах

RHCk,я вот что подумал...

Сброшу свой .htaccess,может что подскажите по нему

Скрытый текст

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.
# 2. In your opencart directory rename htaccess.txt to .htaccess.
# For any support issues please visit: http://www.opencart.com
Options +FollowSymlinks
# Prevent Directoy listing
Options -Indexes
# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Order deny,allow
 Deny from all
</FilesMatch>
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
# Uncomment to enable.
# <IfModule mod_rewrite.c>
#    RewriteCond %{REQUEST_FILENAME} !-f
#    RewriteCond %{REQUEST_FILENAME} !-d
#    RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
#</IfModule>
# Increase cookie security
<IfModule php5_module>
   php_value session.cookie_httponly true
</IfModule>
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
## EXPIRES CACHING ##
# Serve cross-domain Ajax requests, disabled by default.
# enable-cors.org
# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
#   <IfModule mod_headers.c>
#      Header set Access-Control-Allow-Origin "*"
#   </IfModule>
# ----------------------------------------------------------------------
# CORS-enabled images (@crossorigin)
# ----------------------------------------------------------------------
# Send CORS headers if browsers request them; enabled by default for images.
# developer.mozilla.org/en/CORS_Enabled_Image
# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
# wiki.mozilla.org/Security/Reviews/crossoriginAttribute
<IfModule mod_setenvif.c>
   <IfModule mod_headers.c>
      # mod_headers, y u no match by Content-Type?!
      <FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$">
         SetEnvIf Origin ":" IS_CORS
         Header set Access-Control-Allow-Origin "*" env=IS_CORS
      </FilesMatch>
   </IfModule>
</IfModule>
# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/sitemap_pro [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
#RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.
# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off
# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off
# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M
# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M
# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200
# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200
# 7. disable open_basedir limitations
# php_admin_value open_basedir none

 

 

Ссылка на комментарий
Поделиться на других сайтах

7 часов назад, SunnRi сказал:

может что подскажите по нему

Какая часть за что отвечает понятно.

По поводу подсказать, вы наверно хотели что-то сделать ещё лучше и быстрее.

За этим лучше к @savage4pro, @Yoda и @admin.

Я больше на уровне "работает - не работает":)

Ссылка на комментарий
Поделиться на других сайтах

  • 2 weeks later...
4 минуты назад, Yoda сказал:


Эту конструкцию полезно проверить всем, а не только тем кто прикрутил SSL.


Объясню на пальцах. У вас сначала apache сжимает контент и тратит на это время. А потом то же самое делает еще раз nginx, и какие-никакие ресурсы сервера на это тратятся. Так что в ваших интересах сделать так чтобы этот процесс выполнялся кем то одним. Соответственно если стоит nginx как проксирующая заглушка, то делать это надо соответственно ему и инструкции по сжатию файлов для апача в htaccess нужно убрать.

По сути,все что есть в .htaccess,работает без проблем...Плюс ко всему,стоит еще сжатие на уровне apache в сPanel.

 

 

Что стоит убрать,а что дополнить?И какой метод все таки быстрее?

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, Yoda сказал:

Плюс ко всему,стоит еще сжатие на уровне apache в сPanel.

Сжатия на уровне cPanel быть не может - так или иначе - это делает какой то из серверов либо Apache, либо Nginx

 

htaccess - это директивы для apache

У Nginx - свой конфиг.

Ну там написано ,что при включении Apache будет сжимать все данные,через mod_daflate вроде бы

 

Скрытый текст

Apache 2.0 и 2.2 позволяет сжимать содержимое до отправки в веб-браузер посетителя. Типы содержимого, которые можно сжимать, определяются типом MIME. Для правильной работы этой функции требуется модуль Apache mod_deflate

 

Ссылка на комментарий
Поделиться на других сайтах

Всем привет.

Подскажите как и чем проверить сайт на оставшиеся ссылки http ?

Перешел на https вроде посмотрел бегло, но думаю кучу пропустил

Может программа какая есть ?

Ссылка на комментарий
Поделиться на других сайтах

9 минут назад, spown сказал:

Всем привет.

Подскажите как и чем проверить сайт на оставшиеся ссылки http ?

Перешел на https вроде посмотрел бегло, но думаю кучу пропустил

Может программа какая есть ?

Screaming Frog SEO Spider Tool
 

Ссылка на комментарий
Поделиться на других сайтах

17 минут назад, spown сказал:

да нет у меня ее....нищий:)

пробный период кончился

 

попутно еще вопрос - почему у всех ссылок кодировка utf-8 а у тех что на 301 редиректе

text/html; charset=iso-8859-1

так должно быть ?

спросил бы в гугле да не знаю что)

Ссылка на комментарий
Поделиться на других сайтах

26 минут назад, spown сказал:

спросил бы в гугле да не знаю что

Как-то так, наверно.

44 минуты назад, spown сказал:

Подскажите как и чем проверить сайт на оставшиеся ссылки http

Будьте добры линк:)

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, RHCk сказал:

Как-то так, наверно.

да непонятно, может так и надо.если надо вопросов нет.интересно

видишь сколько перечитал, о чем выше не нашел, кроме того что по умолчанию ставится:)

Скрытый текст

02e7b1aecd5b.png

 

на что линк ? сайт мой st-sklad.ru

Ссылка на комментарий
Поделиться на других сайтах

14 минуты назад, Yoda сказал:

Я бы все таки поправил мануал.

Не проблема, гляну в блоге основную идею и поправлю.

 

Сейчас наблюдаю за двумя совершенно небольшими сайтами, у них по-разному настроен редирект на https.

У одного этот редирект от хостера (что интересно он 302), у второго он в .htaccess прописан.

Так вот Яша видит их вот как:

Clip2net_160927093747.png

Что интересно, после настройки http->https, для http версии сайта количество страниц в индексе увеличивалось какое-то время, но теперь медленно снижается.

Ссылка на комментарий
Поделиться на других сайтах

Прочитал тему и как то все равно не понял как лучше и безболезненно переехать с http на https. 

Я в этом профан и не понимаю вообще ничего. 

в прошлую субботу переехал на https и в коде почти ничего не менял. При этом гоша ругается на то что у меня http и мне пришлось поставить 2 сайт в вебмастере, на каком то сайте прочитал что именно так и делают.

с яндексом как мне показалось по проще: в вэбмастере есть такая штука: Переезд сайта и можно поставить галку на https я как понял этого достаточно? Но как не проверю они до сих пор проверяют.

И до сей не могу понять работает ли у меня https в поисковой выдаче или нет. 

Мой htaccess:

Скрытый текст

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +SymLinksIfOwnerMatch

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Order deny,allow
 Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/ 
RewriteRule ^index\.html$ / [R=301,L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ http://%{HTTP_HOST}? [R=301,L]

 

Как я понял последние 7 строк отвечают за редирект? если их поменять на https то будет ли работать? 

Содержание в файлах config.php

Скрытый текст

config.php в корне сайта:


// HTTP
define('HTTP_SERVER', 'http://zoosmile.by/');

// HTTPS
define('HTTPS_SERVER', 'https://zoosmile.by/');

Как я понял тут что то не так, судя по тому что написано на первой странице топика

admin/config.php


// HTTP
define('HTTP_SERVER', 'http://zoosmile.by/admin');
define('HTTP_CATALOG', 'http://zoosmile.by/');

// HTTPS
define('HTTPS_SERVER', 'https://zoosmile.by/admin');
define('HTTPS_CATALOG', 'https://zoosmile.by/');

Тут тоже самое. Как я понимаю что-то да и есть не правильно.

Ну и отчет вашего сервиса для проверки SSL который мелькает в теме. Проверил сайт и вот такое ощущение как будто пытаюсь китайско-японский текст прочитать. 

https://www.ssllabs.com/ssltest/analyze.html?d=zoosmile.by не знаю получится ли этот отчет вам увидеть или нет.

 

 

По поводу гугл. Пришлось добавить новый проект и как понял его надо запускать на индексирование с нуля, что меня не очень радует. Есть ли другой способ такого избежать? При проверке "Посмотреть как Googleбот" пишет такое: 

7kYLEgf.png

вид на главном окне Search Console теперь такой: 

jlLggdv.png

Правильно ли я сделал что добавил новый проект https или нет?

Потому как с https надо начинать все сначала, а это время, которого почти нет

Ссылка на комментарий
Поделиться на других сайтах

Нашел на просторах форума такую темку, достаточно ли будет подкорректировать свой htaccess предложенный @Yoda или нужны какие то еще правки? 

 

Ссылка на комментарий
Поделиться на других сайтах

Немножко потерпите, в ближайшее время будет отредактирована шапка темы.

Будет добавлена информация для более корректного переезда на https.

Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, RHCk сказал:

Немножко потерпите, в ближайшее время будет отредактирована шапка темы.

Будет добавлена информация для более корректного переезда на https

Спасибо жду!

Ссылка на комментарий
Поделиться на других сайтах

  • RHCk changed the title to Руководство для перехода на SSL (HTTPS)
  • RHCk pinned this topic
  • RHCk locked this topic
Гость
Эта тема закрыта для публикации сообщений.