Модул 4 · 4.1
https и правилно пренасочване
Модул 4: Скорост, мобилни устройства и https · Време за четене: 11 минути
Цел на урока: След този урок ще можете да обясните защо https има значение за търсачките и посетителите, да назовете разликата между постоянно и временно пренасочване и да проверите дали всички варианти на Вашия адрес водят с една стъпка към една и съща https страница.
Основни понятия: https, сертификат, пренасочване (redirect), 301 и 308 (постоянно), 302 и 307 (временно), верига от пренасочвания, предпочитан адрес, с www или без www, HSTS, смесено съдържание
Четири адреса за една начална страница
Когато въведете името на уебсайт в адресната лента, браузърът Ви може да стигне до четири места:
| Вариант | Пример |
|---|---|
| http без www | http://example.com/ |
| http с www | http://www.example.com/ |
| https без www | https://example.com/ |
| https с www | https://www.example.com/ |
За Вас това е един сайт. За търсачката това са четири различни адреса. Ако и четирите показват една и съща страница, Google трябва сам да избере кой е "истинският" адрес. Google го нарича каноничен адрес (урок 3.5 разглежда това по-подробно). Google препоръчва сами да изберете един адрес като предпочитан адрес и да пренасочите другите варианти към него. Тогава няма съмнение, а връзките към всеки вариант се отчитат за една и съща страница.
Bloemenatelier Lotte избира https://www.example.com/. Другите три варианта пренасочват към него. Дали ще изберете адрес с www или без, няма значение за търсачките. Важното е да направите един избор и да се придържате към него навсякъде: в менюто, в sitemap, в canonical и в бизнес профила си.
Защо https
https означава, че връзката между браузъра и сървъра е криптирана с сертификат. Никой по пътя не може да чете или да променя нещо в страницата, например в обществена wifi мрежа.
За търсачките https има значение по два начина:
- Като сигнал. През 2014 г. Google обяви, че https е сигнал за класиране, но тогава го нарече "много лек сигнал", който тежи по-малко от доброто съдържание. В документацията за практическата работа със страниците https е посочен като един от въпросите, които трябва да си зададете ("доставят ли се страниците Ви по защитен начин?"). Затова не преувеличавайте: само https няма да Ви изведе на върха.
- За посетителите. Браузърите показват "Не е защитено" при страница по http, особено когато има формуляр. Посетител, който види това, се отказва по-бързо. Това ще усетите в посещенията, а не в правило за класиране.
Днес валиден сертификат може да се получи безплатно чрез Let's Encrypt. При повечето хостинг компании, включително WebOké, той се заявява и подновява автоматично. Уверете се, че сертификатът покрива и двете имена: без и с www. Ако покрива само example.com, тогава https://www.example.com/ дава грешка в сертификата, още преди пренасочването да се е случило.
Постоянно или временно пренасочване
Пренасочването (redirect) е отговор от сървъра: "тази страница се намира другаде". Това става с трицифрен код на състоянието, който започва с 3, плюс заглавен ред Location с новия адрес.
| Код | Значение | Какво прави Google с него |
|---|---|---|
| 301 | Преместено за постоянно | Силен сигнал, че целта е каноничният адрес |
| 308 | Преместено за постоянно (методът остава същият) | Същото като 301 |
| 302 | Временно намерено | Няма сигнал; старият адрес често остава в резултатите |
| 307 | Временно (методът остава същият) | Същото като 302 |
Според Google Search Central индексирането използва постоянното пренасочване като сигнал, че целта трябва да стане канонична. При временно пренасочване това не се случва: старият адрес обикновено остава в резултатите. Преходът от http към https и изборът с www или без www са трайни. Затова използвайте 301 или 308.
Можете сами да видите пренасочването. В терминал:
$ curl -sI http://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/Или в браузъра: отворете инструментите за разработчици (F12), раздел Network, включете опцията, която запазва дневника при зареждане на нова страница, и заредете http адреса. Тогава ще видите всяка стъпка с нейния код.
Вериги от пренасочвания
Верига от пренасочвания е пренасочване към адрес, който на свой ред пренасочва отново. Често срещан пример:
http://example.com/ 301 → https://example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Това работи, но при всяко първо посещение струва допълнително отиване и връщане до сървъра. web.dev посочва пренасочванията като една от причините за бавен първи отговор от сървъра (урок 4.3): всяка стъпка се натрупва, а веригите още повече. По-добре е всеки вариант да води с една стъпка към предпочитания адрес:
http://example.com/ 301 → https://www.example.com/
http://www.example.com/ 301 → https://www.example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200При стария http адрес с другото име това не винаги е възможно с една стъпка, защото при някои настройки сървърът първо пренасочва към https със същото име и едва след това към другото име. Тогава две стъпки са приемливи; три или повече са повод да прегледате настройките. Цикълът (A пренасочва към B, B пренасочва обратно към A) винаги е грешка: тогава страницата изобщо не се отваря.
HSTS: браузърът запомня
HSTS (HTTP Strict Transport Security, RFC 6797) е заглавен ред, който сървърът изпраща по https:
Strict-Transport-Security: max-age=31536000Браузър, който веднъж го е видял, след това сам отива направо на https за този сайт, без първо да опитва http. Това спестява първото пренасочване и защитава от подслушване. web.dev също посочва HSTS като начин да се избегне пренасочването от http към https. За търсачките HSTS не е сигнал; за посетителите Ви е подобрение. Включете го едва когато https работи правилно за всички имена, защото браузърът го запомня толкова дълго, колкото казва max-age. Курсът „Безопасно онлайн“ разглежда това по-подробно.
Смесено съдържание
Страница по https, която зарежда изображение, скрипт или stylesheet през http://, съдържа смесено съдържание (mixed content). Браузърите блокират незащитените скриптове и stylesheet файлове или показват предупреждение. След преминаването към https това често се вижда при стари изображения в текстовете или при тема с фиксирани адреси. Потърсете в изходния код src="http:// и href="http:// и ги заменете с https или с относителен адрес.
На практика: настройване на пренасочване към https
При хостинг пакет на WebOké включвате пренасочването към https в DirectAdmin в настройките на домейна (превключвател "Force SSL with https redirect"), а на същата страница при "Force redirect" избирате дали работите с www или без. Използвайте едно място за пренасочването: две правила, които правят нещо различно (например в панела и в плъгин), лесно водят до цикъл. Сайт, създаден с AI Builder, получава сертификат и собствен адрес при публикуването. В WordPress, в Settings, General, въведете адреса на WordPress и адреса на сайта с https:// и избраното от Вас име; самото пренасочване настройвате на сървъра. При други доставчици и конструктори на сайтове това работи по подобен начин, само бутоните се казват различно.
Ако искате да го направите чрез .htaccess (Apache или LiteSpeed), този код пренасочва всички варианти с една стъпка към https://www.example.com:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]След това винаги проверявайте и четирите варианта, също и с път след адреса (http://example.com/contact): пътят трябва да се запази, а не да прескача към началната страница.
Обобщение
- Изберете един предпочитан адрес (https, с или без www) и пренасочете другите варианти към него.
- За трайни пренасочвания използвайте 301 или 308; 302 и 307 са временни и не дават на Google сигнал за каноничния адрес.
- Нека всеки вариант води към предпочитания адрес с една стъпка, най-много с две; веригите струват време, а циклите чупят сайта.
- Според Google https е лек сигнал за класиране; за посетителите той е преди всичко въпрос на доверие. Сертификатът трябва да покрива и двете имена.
- HSTS кара браузъра сам да отива на https; смесеното съдържание изчиствате след прехода.
Тест
Задача
Задача A4.1: Пренасочва ли се всичко към https с една стъпка? Въведете името на домейна си (без www). Програмата опитва и четирите варианта (http и https, с и без www), проследява всяко пренасочване стъпка по стъпка и проверява сертификата на двете имена. За всеки вариант виждате веригата с кодовете на състоянието, дали всички водят до един и същ https адрес и дали има заглавен ред HSTS. Нямате собствен сайт? Използвайте rijksoverheid.nl.
Прочетете още
Стъпките в тези статии се отнасят за панелите на WebOké; при други доставчици това работи по подобен начин.
- Ръководство за DirectAdmin 6.4: Посетителите винаги да се пренасочват към https
- Ръководство за DirectAdmin 4.3: Настройки на домейн: SSL, PHP, www и private_html
- Ръководство за DirectAdmin 6.3: Сертификат за www, поддомейни и wildcard
- Задължително пренасочване на посетителите към https
- Безплатен DNS курс 3.4: www, пренасочване и какво не прави DNS
- Google Search Central, Redirects and Google Search: https://developers.google.com/search/docs/crawling-indexing/301-redirects
- Google Search Central Blog, HTTPS as a ranking signal (2014): https://developers.google.com/search/blog/2014/08/https-as-ranking-signal
- RFC 6797 (HSTS): https://www.rfc-editor.org/rfc/rfc6797
- Безплатен курс Безопасно онлайн за предприемачи 4.2: Вашият уебсайт: https, HSTS и защитни заглавни редове @@ОМСКРИВАНЕ@@
- Безплатен курс по WordPress 3.1: https и сертификатът
- Безплатен курс по WordPress 3.2: www, пренасочване и смесено съдържание
