Модул 3 · 3.4
www, пренасочване и какво не прави DNS
Модул 3: Записи за Вашия уебсайт · Време за четене: 7 минути
Цел на урока: След този урок ще знаете разликата между DNS (къде се намира сървърът) и пренасочване (коя страница получавате), и ще можете правилно да настроите www.
Основни понятия: www, пренасочване (redirect, 301/302), domain pointer или alias, https сертификат, пътят не съществува в DNS
Какво знае и какво не знае DNS
DNS отговаря на един вид въпрос: „къде се намира това име?“ Отговорът е адрес (A, AAAA) или друго име (CNAME). След това ролята на DNS приключва. Всичко останало се урежда от уеб сървъра на този адрес.
Един уеб адрес се състои от повече от едно име:
https://www.example.com/contact?taal=nl
└─┬─┘ └──────┬───────┘└───┬──┘└──┬──┘
протокол име път параметриСамо средната част, името, стига до DNS. Протоколът (https), пътят (/contact) и параметрите DNS никога не ги вижда. От това следват няколко неща, които изненадват много хора:
- DNS не може да пренасочва към конкретна страница. Запис от типа „
example.comкъмothersite.example/actie“ не съществува. - DNS не избира между http и https. Дали посетителят стига до https версията, се определя от уеб сървъра.
- DNS не знае кой уебсайт се намира на даден сървър. На един IP адрес могат да работят стотици уебсайтове. Браузърът изпраща името заедно със заявката си, а уеб сървърът избира правилния сайт въз основа на него.
Пренасочването се случва на уеб сървъра
Искате ли example.com да пренасочва посетителите към www.example.com, или друг домейн да води към основния Ви сайт? Тогава са Ви необходими две стъпки:
- DNS: насочете името към уеб сървър, който може да извършва пренасочването. Това обикновено е Вашият собствен хостинг или услуга за пренасочване на Вашия регистратор.
- Уеб сървър: настройте там пренасочване (redirect). Сървърът тогава не отговаря със страница, а с „отидете на този друг адрес“. Браузърът автоматично го следва.
Пренасочването има код:
| Код | Означава | Използвате за |
|---|---|---|
| 301 | Постоянно преместен | Трайно пренасочване, например от основния домейн към www. Търсачките приемат новия адрес. |
| 302 (или 307) | Временно другаде | Временна страница с акция или поддръжка. |
Domain pointer или domain alias е нещо различно: тогава същият уебсайт се показва под две имена, без адресната лента да се променя. И това се урежда от хостинг панела, не от DNS. DNS на второто име трябва само да сочи към същия сървър.
Съществува и frame forwarding: адресната лента продължава да показва Вашия домейн, докато виждате друг сайт. Това често работи зле със съвременните уебсайтове (които отказват да се зареждат във frame), а и търсачките не го харесват. По-добре не го използвайте.
www: да или не?
www е просто поддомейн. Дали сайтът Ви работи на www.example.com или на example.com, е въпрос на избор. Важно е само следното:
- И двата варианта трябва да работят. Хората въвеждат ту единия, ту другия. Ако липсва запис за
www, те получават съобщение за грешка, че сайтът не съществува. - Изберете единия като основен адрес и настройте другия да пренасочва към него с 301. Тогава търсачката вижда един сайт, не две копия.
В DNS това обикновено изглежда така:
example.com. 3600 IN A 192.0.2.10
www.example.com. 3600 IN CNAME example.com.или собствен A запис за www със същия адрес. Wildcard (урок 3.3) може също да обхване www. При външна услуга, като платформа за онлайн магазин, www често сочи с CNAME към услугата, а основният домейн с A запис към адрес, зададен от услугата (урок 3.2 обяснява защо).
Сертификатът също е част от уравнението
Браузърът показва катинарче само ако сървърът има сертификат точно за името, което посетителят е въвел. Сертификат за example.com не покрива автоматично www.example.com. Затова се уверете, че сертификатът включва и двете имена.
Това има последствие за пренасочването: посетител, който отваря https://example.com, първо получава проверка на сертификата, и чак след това пренасочването. Без валиден сертификат за основния домейн той вижда предупреждение, дори и да го пренасочите коректно след това. Така че и името, което само пренасочва, се нуждае от сертификат.
Безплатните сертификати, като тези на Let's Encrypt, проверяват дали името действително сочи към Вашия сървър. Ако DNS все още сочи към стар сървър, заявката няма да успее. Първо DNS, после сертификатът.
На практика: ето как изглежда в панел
Като пример използваме DirectAdmin. В cPanel, Plesk и други панели този раздел често се нарича „Redirects“ или „Пренасочвания“.
- Отворете Site Redirects (пренасочване).
- Въведете пътя, който трябва да бъде пренасочен, например
/за целия сайт. - Изберете типа: 301 за постоянно.
- Въведете целевия адрес, с
https://. - Запазете.
DNS на името трябва за целта да сочи към Вашия собствен хостинг. Ако сочи към друга услуга, посетителят никога няма да стигне до това пренасочване.
Обобщение
- DNS дава само адреса на дадено име. Път, протокол и параметри DNS не вижда.
- Пренасочването (301, 302) и domain pointers се уреждат от уеб сървъра, не от DNS.
- Уверете се, че както основният домейн, така и www имат запис, и изберете единия като основен адрес.
- Сертификатът трябва да покрива всяко име, което посетителят може да въведе, включително името, което само пренасочва.
- Първо настройте правилно DNS, после сертификата.
Тест
Задача
Задача Z3.4: www: CNAME или A? Как е настроен www.sidn.nl в DNS? Потърсете какъв запис стои за www.sidn.nl и въведете типа (A, AAAA или CNAME) и стойността. Съвет: първо проверете за CNAME.
За този урок няма задача за настройка в тренировъчната зона: пренасочването се извършва на уеб сървър, а не в DNS.
Допълнително четене
Тези статии описват стъпките в панелите на WebOké; в други панели работят по подобен начин.
- Ръководство за DirectAdmin 4.7: Site Redirects: пренасочване на домейн или страница
- Ръководство за DirectAdmin 4.4: Domeinpointers: втори домейн за един и същ сайт
- Създаване на пренасочване към друг домейн (хостинг акаунт)
- Създаване на пренасочване на домейн (само регистрация на домейн)
- Ръководство за DirectAdmin 6.3: Сертификат за www, поддомейни и wildcard
