Как создать редирект или способы переадресации

Различные способы редиректа или говоря по русски — переадресации, как правильно это сделать, об этом и пойдет речь в данной статье.

На мысль написания данной статьи, меня навело обстоятельство не очень приятное для меня, вернее для одного моего WAP-сайта. Я обнаружил на нем вирусную переадресацию мобильных пользователей на сайт с алармами. Естественно, в последствии, если бы я решил его продавать — это существенно снизило бы цену разработки сайта. Поэтому, с этим нужно было что-то делать.

Мне сообщили через личную почту, что при входе на мой сайт с оперы мини, происходит не понятный способ редиректа на какой-то сторонний ресурс где всплывает окошко с требованием обновить свой браузер до новой версии. Естественно что я сразу же помчался проверять эту информацию. Но каково же было мое удивление, когда ни какой переадресации я не обнаружил. Удивился и задумался я по причине сообщений о переадресации не от одного человека, а совершенно от разных людей — «Не могут же они ошибаться все?!»

При детальном изучении файлов сайта, вредоносный код переадресации таки был обнаружен в .htaccess
Вот тут-то я и вспомнил сколько мне приходилось встречать видов редиректа за все время в сайтостроении и мне пришла в голову мысль написать данную статью, которая во-первых поможет новичкам определять виды редиректов в коде. А во-вторых поможет им самим использовать различные методы переадресации для различных целей в сайтостроении.

Редирект с помощью метатега

Пожалуй один из самых распространенных видов переадресации, потому что можно использовать на сайтах где нет поддержки PHP.

Сделать такую переадресацию достаточно просто. Нужно на странице между тегами <head> и </head> прописать такой код:

<META HTTP-EQUIV=Refresh CONTENT="2; URL=http://site.ru/stranica.html"/>

Вы можете прописать в коде любой сайт или страницу сайта куда будет отправлен посетитель. Цифра 2 в коде, это задержка переадресации в секундах. Т.е. в данном случае две секунды посетительзадержится на странице с переадресацией, после чего будет переадресован. Например можно поставить задержку десять секунд и написать какой-то текст-сообщение посетителю, о том что он будет сейчас переадресован на другую страницу. Можно прописать нуль, тогда посетитель будет переадресован сразу же как только попадет на страницу редиректа.

Редирект с помощью .htaccess

Этот редирект можно ставить на хостингах с поддержкой PHP и где поддерживается файл управления .htaccess

Разновидностей переадресаций с помощью этого файла очень много, некоторые имеют весьма весомое значение для SEO оптимизации сайта. Рассмотрим только несколько самых широко и наиболее часто используемых редиректов.

Самый известный и пожалуй наиболее часто используемый редирект 301, о нем наверное не слышал разве что только какой-то новичок в сайто-строении. Этот редирект означает что файл/папка перемещены навсегда. При такой переадресации все пузомерки (тИЦ и PR), перетекают (не сразу конечно же) на новые страницы.

Выполнить редирект 301 можно несколькими способами.
Вот самый простой из них. В файле .htaccess прописываем такую строку

Redirect 301 /dir/file.html /dir2/

Код выше означает что файл file.html из директории dir перемещен навсегда в папку dir2. Если например написать Redirect 301 /dir/ /dir2/ то это будет означать что все файлы перемещены из директории dir в dir2.

Можно делать переадресацию пополному адресу. Меня как-то на одном форуме человек спросил как сделать редирект 301 со старого домена на новый, чтобы адреса страниц сайта остались те же самые, но при наборе старого домена сайта перебрасывало на новый домен по тому же адресу. Это делается очень просто, пишем такой код в .htaccess

Redirect 301 / http://site.ru/

В коде site.ru это новый адрес сайта. Обратите внимание на написание слэшей и пробелы, это очень важно, если не дописать какой-то слэш, либо где-то не поставить пробел, то код не будет работать.

Вот еще одна переадресация с использованием .htaccess при помощи которой можно например убрать зеркало сайта, чтобы не терять пузомерки. Здесь уже используется мод реврайт. Пишем такой код

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Как видно в коде все просто, убираем такой переадресацией зеркало сайта с www. Т.е. если пользователь зайдет по адресу www.site.ru то его перекинет на site.ru, при чем это касается всех страниц сайта. Можно сделать наоборот чтобы переадресация была с site.ru на www.site.ru, это уже смотря какой у вас домен главный и что вам нужно. Так же можно делать редирект со старого домена сайта на новый.

А на «закуску» я напишу вражеский код который мне был подгружен в .htaccess вероятно через какой-то вирус. С помощью такого кода можно зарабатывать на своем сайте (как оказывается не только на своем :D).

Был бы это WEB-сайт, вероятно об этом коде я бы еще долго не знал. Но это оказался WAP-сайт и большинство посетителей там с телефона, поэтому мне быстро сообщили о не санкционированом редиректе. Сейчас объясню это подробнее.

Например вам на сайте не нужны посетители с мобильных устройств, но они же все равно будут заходить, из поисковиков, по рекламе или из других источников. Так почему бы не монетизировать мобильный трафик? Идем в любую мобильную партнерку, регистрируемся, а в своем .htaccess пишем такой код

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} acs [NC,OR]
RewriteCond %{HTTP_USER_AGENT} alav [NC,OR]
RewriteCond %{HTTP_USER_AGENT} alca [NC,OR]
RewriteCond %{HTTP_USER_AGENT} amoi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} audi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} aste [NC,OR]
RewriteCond %{HTTP_USER_AGENT} avan [NC,OR]
RewriteCond %{HTTP_USER_AGENT} benq [NC,OR]
RewriteCond %{HTTP_USER_AGENT} bird [NC,OR]
RewriteCond %{HTTP_USER_AGENT} blac [NC,OR]
RewriteCond %{HTTP_USER_AGENT} blaz [NC,OR]
RewriteCond %{HTTP_USER_AGENT} brew [NC,OR]
RewriteCond %{HTTP_USER_AGENT} cell [NC,OR]
RewriteCond %{HTTP_USER_AGENT} cldc [NC,OR]
RewriteCond %{HTTP_USER_AGENT} cmd- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} dang [NC,OR]
RewriteCond %{HTTP_USER_AGENT} doco [NC,OR]
RewriteCond %{HTTP_USER_AGENT} eric [NC,OR]
RewriteCond %{HTTP_USER_AGENT} hipt [NC,OR]
RewriteCond %{HTTP_USER_AGENT} inno [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ipaq [NC,OR]
RewriteCond %{HTTP_USER_AGENT} java [NC,OR]
RewriteCond %{HTTP_USER_AGENT} jigs [NC,OR]
RewriteCond %{HTTP_USER_AGENT} kddi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} keji [NC,OR]
RewriteCond %{HTTP_USER_AGENT} leno [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lg-c [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lg-d [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lg-g [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lge- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} maui [NC,OR]
RewriteCond %{HTTP_USER_AGENT} maxo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} midp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mits [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mmef [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mobi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mot- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} moto [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mwbp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nec- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} newt [NC,OR]
RewriteCond %{HTTP_USER_AGENT} noki [NC,OR]
RewriteCond %{HTTP_USER_AGENT} opwv [NC,OR]
RewriteCond %{HTTP_USER_AGENT} palm [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pana [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pant [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pdxg [NC,OR]
RewriteCond %{HTTP_USER_AGENT} phil [NC,OR]
RewriteCond %{HTTP_USER_AGENT} play [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pluc [NC,OR]
RewriteCond %{HTTP_USER_AGENT} port [NC,OR]
RewriteCond %{HTTP_USER_AGENT} prox [NC,OR]
RewriteCond %{HTTP_USER_AGENT} qtek [NC,OR]
RewriteCond %{HTTP_USER_AGENT} qwap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sage [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sams [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sany [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sch- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sec- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} send [NC,OR]
RewriteCond %{HTTP_USER_AGENT} seri [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sgh- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} shar [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sie- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} siem [NC,OR]
RewriteCond %{HTTP_USER_AGENT} smal [NC,OR]
RewriteCond %{HTTP_USER_AGENT} smar [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sony [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sph- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} symb [NC,OR]
RewriteCond %{HTTP_USER_AGENT} t-mo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} teli [NC,OR]
RewriteCond %{HTTP_USER_AGENT} tim- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} tosh [NC,OR]
RewriteCond %{HTTP_USER_AGENT} tsm- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} upg1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} upsi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} vk-v [NC,OR]
RewriteCond %{HTTP_USER_AGENT} voda [NC,OR]
RewriteCond %{HTTP_USER_AGENT} w3cs [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wap- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wapa [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wapi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wapp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wapr [NC,OR]
RewriteCond %{HTTP_USER_AGENT} webc [NC,OR]
RewriteCond %{HTTP_USER_AGENT} winw [NC,OR]
RewriteCond %{HTTP_USER_AGENT} winw [NC,OR]
RewriteCond %{HTTP_USER_AGENT} xda [NC,OR]
RewriteCond %{HTTP_USER_AGENT} xda- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} up.browser [NC,OR]
RewriteCond %{HTTP_USER_AGENT} up.link [NC,OR]
RewriteCond %{HTTP_USER_AGENT} windows.ce [NC,OR]
RewriteCond %{HTTP_USER_AGENT} iemobile [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mini [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mmp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} symbian [NC,OR]
RewriteCond %{HTTP_USER_AGENT} midp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} phone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pocket [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mobile [NC,OR]
RewriteCond %{HTTP_USER_AGENT} android [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Android [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pda [NC,OR]
RewriteCond %{HTTP_USER_AGENT} PPC [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Series60 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Opera.Mini [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ipad [NC,OR]
RewriteCond %{HTTP_USER_AGENT} iphone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} iPad [NC,OR]
RewriteCond %{HTTP_USER_AGENT} iPhone [NC,OR]
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !windows.nt [NC]
RewriteCond %{HTTP_USER_AGENT} !bsd [NC]
RewriteCond %{HTTP_USER_AGENT} !x11 [NC]
RewriteCond %{HTTP_USER_AGENT} !unix [NC]
RewriteCond %{HTTP_USER_AGENT} !macos [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
RewriteCond %{HTTP_USER_AGENT} !playstation [NC]
RewriteCond %{HTTP_USER_AGENT} !google [NC]
RewriteCond %{HTTP_USER_AGENT} !yandex [NC]
RewriteCond %{HTTP_USER_AGENT} !bot [NC]
RewriteCond %{HTTP_USER_AGENT} !libwww [NC]
RewriteCond %{HTTP_USER_AGENT} !msn [NC]
RewriteCond %{HTTP_USER_AGENT} !america [NC]
RewriteCond %{HTTP_USER_AGENT} !avant [NC]
RewriteCond %{HTTP_USER_AGENT} !download [NC]
RewriteCond %{HTTP_USER_AGENT} !fdm [NC]
RewriteCond %{HTTP_USER_AGENT} !maui [NC]
RewriteCond %{HTTP_USER_AGENT} !webmoney [NC]
RewriteCond %{HTTP_USER_AGENT} !windows-media-player [NC]
RewriteRule ^(.*)$ http://site.ru/?id=111 [L,R=302]

Данный код будет переадресовывать посетителей с мобильных устройств переадресовывать по определенному адресу. В этом коде адрес http://site.ru/?id=111 это ваша рекламная ссылка полученная в мобильной партнерке. Особо обратите внимание на то что здесь ставится редирект 302, а не 301. Это временная переадресация.

Вот собственно самые распространенные способы редиректа, если вспомню еще какие интересные переадресации , то обязательно допишу в эту статью))

Добавить комментарий