301 Moved Permanently и 302 Found са HTTP статус кодове, с които уеб сървърът отговаря на уеб клиентите и ботовете на търсещите машини, при опит да достъпят пренасочен уеб адрес.
HTTP статус кодът е първия ред (статус линията) в HTTP хедърите на отговора от уеб сървъра. Кодовете 301 и 302 са описани в документите на HTTP спецификацията.
301 Moved Permanently (Permanent)
Статус 301 означава, че уеб ресурсът (страницата) е преместен за постоянно на нов уеб адрес. Уеб клиентите не бива да ползват повече стария уеб адрес и от сега нататък трябва да използват новия уеб адрес.
При този статус търсещите машини (Google, Bing) ще подменят в базата си стария с новия уеб адрес. След това, при търсене на ресурса в търсачката, в резултатите ще се показва новия уеб адрес.
Например при създадено 301 пренасочване от sourcedomain.com към targetdomain.com уеб клиентът и уеб сървърът ще си разменят следните HTTP хедъри:
Уеб браузърът иска да зареди sourcedomain.com, примерни HTTP хедъри на заявката:
линия за заявката | GET / HTTP/1.1 |
HTTP хедъри (заявка) | Host: sourcedomain.com |
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Firefox/46.0 | |
Accept: text/html,application/xhtml+xml | |
Уеб сървърът ще върне отговор на заявката с HTTP хедъри:
статус линия | HTTP/1.1 301 Moved Permanently |
HTTP хедъри (отговор) | Date: Fri, 16 May 2016 12:20:50 GMT |
Server: Apache | |
Location: http://targetdomain.com/ | |
Уеб клиентът, в случая уеб браузър Mozilla Firefox, ще разчете този отговор и ще направи нова заявка към уеб адреса от полето Location. Също така ще замени sourcedomain.com с targetdomain.com в любимите връзки (bookmarks).
Кога се ползва 301 пренасочване?
- когато домейнът на сайта е променен; например mysitename.com/blog вече ще се намира на уеб адрес blog.mysitename.com или somesitename.com вече ще е mysitename.bg и т.н;
- когато един сайт се достъпва от няколко различни уеб адреса, например http://home.mysitename.com, http://www.mysitename.com, http://mysitename.net (паркирани домейни) и т.н;
- когато сайтът ще ползва нова структура и адреси.
302 Found (Temporary)
Статус 302 означава, че ресурса се намира временно на нов уеб адрес. Уеб клиентите трябва да продължат да ползват оригиналния уеб адрес.
Кога се ползва 302 пренасочване?
- само когато пренасочването наистина е временно;
- например при кратък, временен период на профилактика и обновяване или временно ограничение на уеб достъпа до даден ресурс и т.н;
- когато имате уеб ресурс, който все още не е готов за публикуване, но искате да покажете на посетителите негов временен заместител (coming soon страница и други).
Създаване на пренасочване 301 или 302
Автоматично създаване на пренасочвания, за домейни и уеб адреси в cPanel, може да се извърши през меню (Домейни) Пренасочвания. Пренасочване на Паркиран домейн може да се създаде също през меню Паркирани домейни в cPanel.
Пренасочване може да се извърши и чрез поставяне на пренасочващи правила в .htaccess файл.
Ако създавате пренасочване, чрез .htaccess, понякога може да е необходимо да изчистите кеша на уеб браузъра, за да видите резултатите.
HTTP статус кодовете са част от HTTP хедърите и може да се управляват и от приложенията в хостинг акаунта. Например пренасочване 301 чрез PHP код:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://targetdomain.com/new.html");
exit();
?>