Довідник помилок / www version of the site does not work
Версія сайту з www не працює
example.com і www.example.com - це два різних імені хоста, а не два написання одного. Кожному потрібен власний DNS-запис, власний запис у конфігурації веб-сервера і власне імʼя в TLS-сертифікаті. Якщо одне імʼя відкривається, а друге відпадає за таймаутом, показує стандартну сторінку хостингу або попередження про сертифікат, значить один із цих трьох рівнів налаштований лише для одного імені. Власники сайтів помічають це зазвичай після переїзду, зміни DNS або свіжої установки, і часто тільки тому, що відвідувач чи результат пошуку використав іншу форму адреси.
Перевірте свій сайт
Через що виникає
Найчастіше для імені www просто немає запису A, AAAA або CNAME: запис для голого домену не поширюється на піддомени, тому www треба прописувати окремо. Друга за частотою причина - запис є, але після переїзду він і далі вказує на старий сервер, тобто імʼя резолвиться туди, де сайту вже немає. Якщо обидва імені резолвляться на правильний IP, проблема рівнем вище: у веб-сервері може бути віртуальний хост лише для одного імені, і на друге він віддає стандартну сторінку або взагалі чужий сайт, а сертифікат може покривати тільки одне імʼя, і тоді браузер показує попередження про безпеку, а не відмову. Нарешті, редирект між двома іменами буває налаштований лише в один бік або зациклений.
Як виправити
- Запустіть перевірку DNS на цій сторінці двічі: спершу для example.com, потім для www.example.com, точно так, як вони виглядають в адресному рядку. Якщо для проблемного імені не повертається жоден запис A, AAAA чи CNAME, а для робочого запис є, справа саме в DNS і виправляє її крок 2. Якщо записи повертаються для обох імен, з DNS усе гаразд, переходьте одразу до кроку 4.
- Додайте відсутній запис у редакторі зони там, де реально керуються ваші DNS (реєстратор, панель хостингу або Cloudflare, якщо домен у ньому). Для відсутнього www звична форма - CNAME з іменем www, що вказує на example.com, або запис A для www з тим самим IP, що й у голого імені. Для відсутнього голого домену CNAME використати не можна: на вершині зони дозволені лише A або AAAA, і саме тому багато провайдерів пропонують типи ALIAS чи ANAME, коли ціллю є імʼя хоста. Памʼятайте, що CNAME не може співіснувати з іншими записами під тим самим іменем, тож якщо на www вже є TXT чи інші записи, ставте там запис A. Перевірте ще раз після того, як мине TTL запису.
- Якщо обидва імені резолвляться, але на різні адреси, один із записів застарілий. Порівняйте IP, які перевірка повертає для кожного імені, визначте, який сервер ви використовуєте сьогодні, і виправте другий запис під нього.
- Якщо обидва імені ведуть на один IP, але одне з них віддає стандартну сторінку, заглушку хостера або чужий сайт, DNS ні до чого: у веб-сервері немає віртуального хоста для цього імені. Додайте його як ServerAlias в Apache, у server_name в nginx або як аліас домену в панелі керування хостингом, після чого перезавантажте веб-сервер.
- Якщо друге імʼя відкривається, але браузер попереджає про сертифікат (помилка про невідповідність імені або про те, що сертифікат недійсний для цього хоста), сертифікат покриває лише одне з двох імен. Перевипустіть його одразу на обидва імені в одному сертифікаті. Більшість панелей і клієнтів Let's Encrypt роблять це автоматично, щойно обидва імені починають резолвитися на сервер.
- Виберіть одне імʼя канонічним і поставте 301 з другого на нього, рівно в один бік. Резолвитися мають обидва імені, обидва мають бути в сертифікаті, але контент віддає лише одне. Після зміни відкрийте кожне імʼя і переконайтеся, що ви отримуєте один 301 на канонічне імʼя, а далі 200, а не ланцюжок, який стрибає між двома адресами.