Перенаправления в http

Настройка перенаправлений

Настройки необходимо вносить в файлах конфигураций виртуальных доменов. В Linux на основе RPM (CentOS, Red Hat), как правило, они расположены в директории /etc/nginx/conf.d/. В Linux на основе Deb (Ubuntu, Debian) — в директории /etc/nginx/sites-enabled/. Во FreeBSD все в одном файле — /usr/local/etc/nginx/nginx.conf.

Саму настройку на перенаправление в NGINX можно прописать несколькими способами.

1. Первый:

rewrite ^ https://$host$request_uri? <флаг>;

* $host — имя хоста из запроса, если отсутствует — имя в поле «Host» заголовка, если тоже отсутствует — имя сервера; $request_uri — первоначальный запрос с аргументами (все, что идет после доменного имени).
** где флаги могут быть следующие:

  • permanent — перенаправление с кодом 301.
  • redirect — перенаправить с кодом 302.
  • last — закончить обработку с переходом в новый location.
  • break — закончить обработку и остаться в текущем location.

2. Второй: 

return <код> https://$host$request_uri;

* где коды могут использоваться любые, но чаще всего — 301, 302, 404.

Есть различные мнения, какой из методов лучше и безопаснее, поэтому каким воспользоваться — решать по ситуации. В данных примерах используются оба варианта.

После внесения изменений, необходимо проверить их корректность:

nginx -t

И для их применения перезапустить веб-сервер:

systemctl restart nginx

service nginx restart

* в первом примере перезапуск выполняется на новых системах Linux. Второй пример — на устаревших или FreeBSD.

Проверяя редиректы в браузере, следует учесть, что настройки могут кэшироваться. Для обновления кэша используйте комбинацию Ctrl + F5. Если и это не помогает, закрывайте вкладку и открывайте новую.

Типы редиректов и их описание

О том, как сделать редирект, подробнее расскажу ниже. Пока давайте рассмотрим их типы. В частности, предусматривается классификация в зависимости от метода реализации. Перенаправления проводятся посредством:

  • .htaccess;
  • config;
  • PHP;
  • HTML;

Давайте рассмотрим каждый из указанных вариантов.

.htaccess

Он встраивается в одноименном файле в том случае, если сервер, на котором размещен сайт, управляется при помощи Apache.

Как настроить 301 редирект htaccess? Всё относительно просто. Следует внести изменения в файл с соответствующим названием.

Чтобы получить к нему доступ, нужно пользоваться специальными клиентами для FTP. Их довольно много – начиная от классического Total Commander и заканчивая более современной и популярной разработкой под названием FileZilla. На примере последнего клиента и рассмотрим особенности работы.

Потом необходимо будет перейти в настройки программы, выбрать в меню строку «Сервер» и там уже указать, чтобы демонстрировались даже скрытые файлы. После – найти htaccess – он размещен в папке с доменным именем сайта в каталоге public_html.

Внести изменения непосредственно там не получится. Сначала нужно будет загрузить файл себе на ПК:

  • выделить файл;
  • перейти в контекстное меню;
  • выбрать нужную вам опцию.

В скачанный файл вносятся изменения, а потом он снова загружается на сервер. В FileZilla окно разделено на две части – в левом окне демонстрируются файлы вашего ПК, а справа – всё, что находится на сервере.

Вносить изменения в htaccess следует при помощи блокнота. Именно ним открывается файл, а потом добавляется нужный вам код.

Если сервер управляется посредством Nginx, код вписывается в файл под названием nginx.conf. В нем нужно найти блок server и туда внести изменения.

PHP-редиректы

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

На вашем веб-ресурсе имеется несколько десятков страниц, которым необходимо задать перенаправление, а еще несколько десятков в нём не нуждаются? Тогда именно PHP-способ будет оптимальным.

Настройка редиректов в этом случае проводится следующим образом:

  • загрузите на свой ПК index.php;
  • также файл можно открыть без скачивания в панели управления вашего хостинга;
  • искать index.php нужно в корневой папке всего ресурса, там же, где искали и описанный в предыдущем разделе файл;
  • внесите изменения в файл, вписав в него нужный код;
  • обязательно сохраните все внесенные изменения;
  • снова загрузите файл в папку.

JavaScript-редирект

Отличительная особенность этого перенаправления заключается в том, что он выполняется уже не на сервере, а непосредственно на стороне браузера. Чтобы перевести юзера на новый адрес, необходимо, дабы JavaScript полностью загрузился в браузере. Такая особенность его работы приводит к медленному перенаправлению.

Однако в отдельных ситуациях такой метод будет востребован, а его использование – полностью оправданным. В частности, если планируется делать перенаправление с определенной задержкой. Как вариант, на старом адресе пользователь видит красивую картинку и надпись, что сайт переехал по новому «урл», а потом только будет загружена новая страница.

Как настроить редирект JavaScript:

  • откройте исходный код страницы, откуда планируется проводить перенаправление юзеров;
  • найдите там теги <head> и </head>;
  • между ними впишите требуемый код.

Например, в WordPress редирект такого типа настраивается практически в один клик. Для этого требуется инсталлировать специальный плагин Per page add to head. Он простой в работе, но самое главное – бесплатный.

Обязательно сохраните внесенные изменения в код и проверьте правильность отображения и функционирования установленного вами перенаправления.

HTML-редирект

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

Дабы сделать редирект страницы, нужно поступить, как и в случае с JavaScript. После внесения кода не забудьте сохранить изменения и проверить адекватность функционирования.

Промежуточный вывод

Настоятельно рекомендую пользоваться двумя первыми методами. Серверные перенаправления более быстрые, удобные.

Оптимизируем работу сайта

Скорость загрузки сайта — один из факторов ранжирования в поисковых системах. Увеличить ее можно в том числе с помощью директив в .htaccess.

14. Сжимаем компоненты сайта при помощи mod_gzip или mod_deflate

Сжатие файлов, с одной стороны, увеличивает скорость загрузки сайта, но с другой — больше нагружает сервер. В .htaccess можно включить сжатие при помощи двух модулей — mod_zip и mod_deflate. Они практически идентичны по качеству сжатия.

Синтаксис модуля Gzip более гибкий и он умеет работать с масками:

В mod_deflate вы перечисляете типы файлов, которые нужно сжать:

15. Усиливаем кэширование

Этот комплекс команд поможет быстрой загрузке сайта для тех посетителей, которые уже на нем были. Браузер не будет заново скачивать картинки и скрипты с сервера, а использует данные из кэша.

В примере срок жизни кэша ограничен одной неделей («1 week»), вы можете указать свой срок в месяцах (month), годах (year), часах (hours) и т.д.

Другой вариант кода:

Для кэширования доступны следующие типы файлов:

  • image/x-icon;
  • image/jpeg;
  • image/png;
  • image/gif;
  • application/x-shockwave-flash;
  • text/css;
  • text/javascript;
  • application/javascript;
  • application/x-javascript;
  • text/html;
  • application/xhtml+xml.

Альтернативные способы указания перенаправлений

HTTP перенаправления это не единственный способ переадресации. Есть ещё два метода: HTML перенаправления используют элемент , и JavaScript перенаправления используют DOM.

HTTP перенаправления более предпочтительный способ создания перенаправлений, но, иногда, у веб-разработчиков нету контроля над сервером или возможности настроить его.  Для таких особых случаев, разработчики могут создать HTML страницу с элементом  и установить атрибуту значение  в блоке . Когда страница отображается, браузер найдёт этот элемент и перейдёт на указанную страницу.

Атрибут  начинается с числа, которое означает, сколько секунд браузер должен ждать, прежде чем перейти по данной ссылке. Всегда устанавливайте 0, для лучшей доступности.

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

Заметьте, что перенаправления не позволяют работать должным образом кнопке «Назад» в браузере: вы можете вернуться на страницу назад, но мгновенно будете перенаправлены на страницу с которой пришли.

Перенаправления в JavaScript создаются установкой значения свойства  и новая страница загрузиться.

Как и HTML перенаправления, этот тип не будет работать на всех ресурсах, и очевидно, что работает только на стороне клиента, который выполнит JavaScript. С другой стороны, вы можете вызвать перенаправление, только тогда, когда исполнится определённое условие.

При использовании трёх возможных способов URL перенаправления, некоторые методы могут быть вызваны одновременно, но какой из них будет примёнён первым? Порядок приоритетов следующий:

  1. HTTP перенаправления всегда выполняются первыми, пока ещё страница даже не была передана,  и конечно же, пока ещё не прочитана.
  2. HTML перенаправления () выполняются только, если перенаправление не было в выполнено в HTTP.
  3. JavaScript перенаправления используются как последняя возможность перенаправления, и работают только если разрешено выполнение JavaScript на клиентской стороне.

Используйте HTTP перенаправления, когда это возможно, и не используйте элемент . Если разработчик изменяет HTTP перенаправление и забывает изменить HTML перенаправление , тогда они больше не идентичны, и закончится это вечным циклом или другим ночным кошмаром.

Отличительные особенности постоянного редиректа

Между такими формами переадресации, как 301 и 302, есть немало схожего, но при этом чаще всего предпочтительнее первый вариант, который предполагает смену адреса на постоянной основе. Поисковые роботы по-разному реагируют на эти два кода, что отображается на результатах выдачи в Яндексе и Google. Сталкиваясь с 301-м редиректом, поисковая система должна выбросить из памяти предыдущий адрес и в будущем не заходить на него. А при временной переадресации по коду 302 поисковик получает сигнал о том, что содержимое на старой странице нужно продолжать индексировать. Если 301-й редирект приводит к исключению неактуальной публикации из выдачи, то при использовании кода 302 индексируется и прежний адрес, и новый.

Настраиваем редиректы для SEO

Как мы уже упоминали, это самый популярный способ использования .htaccess. Перед тем, как настраивать тот или иной вид переадресации, убедитесь, что это действительно необходимо. Например, редирект на страницы со слешем в некоторых CMS настроен по умолчанию. О настройках редиректа для SEO мы писали в блоге.

При настройке 301 редиректов помните о двух правилах:

  1. Избегайте нескольких последовательных перенаправлений — они увеличивают нагрузку на сервер и снижают скорость работы сайта.
  2. Располагайте редиректы от частных к глобальным. Например, сначала переадресация с одной страницы на другую, затем общий редирект на страницы со слешем. Это правило работает не в 100% случаев, поэтому с размещением директив нужно экспериментировать.

1. Настраиваем постраничные 301 редиректы

Это потребуется в следующих случаях:

  • изменилась структура сайта и у страницы поменялся уровень вложенности;
  • страница перестала существовать, но нужно сохранить ее входящий трафик (например, в случае отсутствия товара обычно делают переадресацию на товарную категорию);
  • поменялся URL, что крайне нежелательно, но тоже встречается.

Просто удалить страницу — плохая идея, лучше не отдавать роботу ошибку 404, а перенаправить его на другой URL. В этом случае есть шанс не потерять позиции сайта в выдаче и целевой трафик. Настроить 301 редирект с одной страницы на другую можно при помощи директивы простого перенаправления:

  • — адрес страницы от корня, без протокола и домена. Например, .
  • — полный адрес страницы перенаправления, включая протокол и домен. Например, .

2. Избавляемся от дублей

Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:

  • редирект на страницы со слешем в конце URL или наоборот;
  • главное зеркало — основной адрес сайта в поиске.

Сделать это можно при помощи модуля . В его составе используются специальные команды — директивы сложного перенаправления. Первой командой всегда идет включение преобразования URL:

Переадресация на слеш или наоборот

Настроить ли переадресацию на страницы со слешем или без, в каждом случае нужно решать индивидуально. Если у сайта уже накоплена история в поиске, анализируйте, каких страниц в индексе больше. Для новых сайтов обычно настраивают редирект на слеш. Проверить, не настроена ли переадресация по умолчанию, просто: удалите/добавьте слеш в конце URL. Если страница перезагрузится с новым адресом — мы имеем дубли, требуется настройка. Если URL подменяется — все в порядке. Проверять лучше несколько уровней вложенности.

Код 301 редиректа на страницы без слеша:

3. Настраиваем главное зеркало

Для начала нужно определиться, какой адрес будет являться основным для поиска. SSL-сертификат давно уже мастхэв. Просто установите его и добавьте правило в .htaccess. Не забудьте также прописать его в robots.txt.

Редирект на HTTPS

Определять, с «www» или без будет главное зеркало, можно несколькими способами:

  • добавить сайт в Яндекс.Вебмастер в двух вариантах, в консоли отобразится информация, какой URL поисковик считает главным зеркалом;
  • проанализировать выдачу и посмотреть, каких страниц сайта больше в индексе;
  • для нового ресурса не имеет значения, с «www» или без будет адрес, выбор за вами.

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

Редирект с без www на www

4. Перенаправляем с одного домена на другой

Самая очевидная причина настройки этого редиректа — переадресовать роботов и пользователей на другой адрес при переезде сайта на новый домен. Также им пользуются оптимизаторы для манипуляций ссылочной массой, но дроп-домены и PBN — серые технологии продвижения, которые в рамках этого материала мы затрагивать не будем.

Воспользуйтесь одним из вариантов кода:

или

Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.

Зачем настраивать редирект

Есть несколько основных причин перенаправлять пользователя на другой URL. Давайте рассмотрим их подробнее.

Для указания главной версии сайта

Возможно, вы замечали, что адрес одних сайтов начинается с https, а других — с http. Также иногда в адресе указан префикс www, а иногда его нет. Выбор протокола и решение использования www перед основным доменом определяют главное зеркало ресурса. Это основная версия сайта, на которую перенаправляют всех пользователей, если они вводят в строку поиска альтернативный вариант URL-адреса.

В этом случае редирект необходим для избежания проблем с дублями контента. Что такое дубли страниц и почему это плохо, можно почитать в нашей статье.

Для решения проблемы дублей

Дубли страниц возникают не только из-за разных протоколов и префикса www в URL-адресе, но и по ряду других технических причин. Также иногда дублируется сам контент — страницы-копии обычно удаляют, а с них настраивают редирект.

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

Перенаправление при добавлении завершающего слеша

Когда вы вбиваете адрес страницы в строку поиска, то скорее всего не добавляете слеш в конце. Иногда браузер сам «дописывает» его к URL-адресу — происходит это благодаря редиректу. Как и в случае с протоколом и www, вебмастеру нужно определиться, будут ли на сайте использоваться завершающие слеши, чтобы избежать проблем с дублями.

Ниже мы адаптировали схему, которой аналитик Google Джон Мюллер поделился в своем аккаунте Twitter.  

Как вы видите, иногда завершающие слеши приводят к дублированию, а иногда нет. Например, в варианте F и G можно легко получить дублированный контент.

Решить проблему можно двумя способами: использовать тег canonical либо установить перенаправление на нужный вам вариант страницы.

Перенаправление при использовании расширения файлов в URL

Иногда в конце адреса страницы указывается расширение файла, например, .html, .htm, .php, .aspx. Чтобы пользователь, вбивая в строку поиска URL вида https://site.com/page/, все равно попал на страницу https://site.com/page.html и чтобы избежать дублирования контента, используется перенаправление.

Перенаправление URL-адреса в нижний регистр

Один и тот же URL-адрес, прописанный в верхнем и нижнем регистре, — это две разные страницы. Правило хорошего тона — использовать в URL нижний регистр. Поэтому чтобы адрес вида https://site.com/PAGE/ был доступен только как https://site.com/page/, также применяется перенаправление. Естественно, редирект здесь нужен и для того, чтобы предотвратить проблемы с дублями. 

Для сохранения ссылочного веса и трафика при смене URL

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

Например, вы использовали страницу https://site.com/festivals-2020/, но в конце года решили обновлять контент страницы и публиковать на ней все фестивали следующего года. Чтобы убрать из URL-а прошлый год, вы решаете создать новую страницу https://site.com/festivals/. Эта страница будет постоянно обновляться и содержать контент, который ранее публиковался на странице https://site.com/festivals-2020/. Чтобы избежать каннибализации, вы принимаете решение удалить старую страницу https://site.com/festivals-2020/ и перенаправить трафик и ссылочный вес на новую страницу https://site.com/festivals/.

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

Как убрать редирект через .htaccess на хостинге TimeWeb

Если вы изначально настраивали перенаправления, отредактировав файл .htaccess, то без труда сможете их там же убрать. 

  • Для начала открываем панель управления Timeweb.
  • Кликаем по меню «Файловый менеджер».
  • Находим там конфигурационный файл .htaccess и открываем его.

Затем переходим непосредственно к редактированию кода внутри.

Зачастую в .htaccess переадресация настраивается через директиву RewriteEngine. Поэтому базовый редирект с одного домена на другой будет выглядеть как-то так:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.ru$

RewriteRule ^(.*)$ http://www.new-domain.ru/$1 

В случае с 301 редиректом какой-то отдельной страницы, запись в файле с настройками может выглядеть так:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{REQUEST_URI} !^/Необходимая директория_страница$

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 

RewriteCond %{HTTPS} on 

RewriteCond %{REQUEST_URI} ^/Необходимая директория_страница$

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 

Встречают укороченные варианты записи вроде такой:

Redirect 301 / http://example.com/index.html

Независимо от типа, редирект выключить можно двумя способами. 

  1. Полностью стереть соответствующий код из .htaccess.
  2. Или поставить перед ним значок #. Так мы его закомментируем, и он перестанет работать. Можно будет проверить, как поведет себя сайт, не удаляя переадресацию полностью. Потом можно легко все вернуть как было, удалив комментарии.

На этом все. Теперь вы знаете, как удалять и временно отключать редиректы в .htaccess и в панели управления. Этих трех способов должно хватить.

Дополнительные параметры переадресации

Пользователям Google Domains также доступны следующие настройки переадресации.

Тип перенаправления

Определяет, как маршрутизаторы и браузеры будут сохранять адрес переадресации. Существует два типа перенаправления.

  • Временное перенаправление (HTTP 302) позволяет быстро передать изменения на адрес переадресации. При такой настройке можно в любое время запустить поиск адреса в таблице маршрутизации или на DNS-сервере.

  • Постоянное перенаправление (HTTP 301) позволяет браузерам кешировать адрес переадресации. В таком случае в следующий раз в том же браузере страница будет открываться чуть быстрее. Однако для передачи изменений может потребоваться больше времени.

Если вы не знаете, какой тип выбрать, используйте временное перенаправление (HTTP 302).

Как исправить ошибки URL

Внутренние ссылки

Если что-то не так с внутренними ссылками, то желательно их подправить (хорошо, что Гугл сам укажет на страницу с ошибкой). Если сайт создавали на WordPress, то поискать такие URL (битые ссылки) поможет плагин Broken Link Checker. Смотрите о его настройках в видео про поиск битых ссылок.

Внешние ссылки и переадресация на другую страницу через .htaccess

Естественно, ссылки на чужих сайтах исправить едва ли получится, поэтому следует сделать так, чтобы при переходе по конкретной внешней ссылке происходил бы 301-й редирект на существующую страницу вашего сайта. Осуществить 301-й редирект несложно, и именно такой вариант перенаправления (не 302) нужен для переноса PageRank.

В данном случае проще всего сделать 301-й редирект через файл .htaccess. В папке сайта практически всегда есть этот файл (если нет, то надо создать)

Открываем файл .htaccess для редактирования и вставляем в него такую строчку:

Вместо /wrong-URL указываем «несуществующий» адрес, который нашёл Google. Причём указать надо именно как относительную ссылку. Ну а вместо http://your-site/new-URL пишем полный адрес (в формате URI) той страницы, на которую попадут и люди и роботы после перехода по неправильному адресу.

К примеру, на web-ru.net ведут какие-то непонятные ссылки, вроде http://web-ru.net/articles/@page=5. Я решил все эти адреса перенаправить на страницу со списком статей — http://web-ru.net/articles/. Поэтому можно прописать так:

Делаем переадресацию на другую страницу через .htaccess

Вот и всё. Теперь в аккаунте Google webmasters надо поставить галочки слева от URL с ошибками и щёлкнуть «Отметить как исправленные».

Таким образом, мы добавили PageRank (хоть он и теряется при 301-м редиректе) своему сайту, а также улучшили сайт с точки зрения юзабилити — при переходе посетителя по «плохому» URL произойдёт переадресация на нужную страницу, а не страницу с ошибкой 404. Как результат — небольшое улучшение поведенческих факторов.

Случайные публикации:

  • Teasernet объявились с масштабной акцией….хема простая: получаете промокод, активируете его в личном кабинете
  • Как закрыть ссылку от индексации и зачем? Простой универсальный способЧеловек, только-только познакомившийся с таким явлением, как поисковая…
  • Что такое реферальная ссылка и как она работает.Для заработка в интернете, есть много самых разных способов. Один из самых…
  • Ключевые слова сайта и сервис подбора ключевых слов Яндекс ВордстатНаверное, любой человек, даже никак не связанный с интернет-деят…
  • Что такое RSS, для чего нужно, как подписаться и пользоваться RSS…льзование технологии RSS позволяет вам получать интересующую информацию не затрачивая

Оставьте комментарий:

Правила использования директивы RewriteRule вместе с RewriteCond

	 RewriteEngine on #Должно быть включено для работы RewriteRule	 RewriteCond %{NAME_OF_VARIABLE} URL	 RewriteRule URL-regexp URL-to-redirect ]

Директива RewriteCond определяет условия для какого-либо правила. Перед директивой RewriteRule располагаются одна или несколько директив RewriteCond. Следующее за ними правило преобразования используется только тогда, когда URLсоответствует условиям этой директивы и также условиям этих дополнительных директив.

Переменные сервера %{NAME_OF_VARIABLE} — переменные полностью соответствуют названным похожим образом MIME-заголовкам HTTP.

Мобильный редирект в .htaccess

Смысл тот же — исследуем юзер-агент. Если нужно сделать перенаправление с http://site.ru/page/ на http://site.ru/mobile-page/, то добавьте в .htaccess такой код:

RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android)
RewriteRule ^(*?)page/?$ http://site.ru/mobile-page/ 

Эта конструкция должна идти после строки RewriteEngine On (если её нет — добавьте).

Если же нужно отправить всех мобильных посетителей на mobile-версию сайта (с любой страницы на http://m.site.ru/), то последняя строчка из кода выше может иметь такой вид:

RewriteRule ^.*$ http://m.site.ru/ 

Как передать UTM-метки и субаккаунты посредством .htaccess я рассматривать не буду, т.к. много там заморочек. Да и вообще, если вы не очень понимаете представленные здесь коды, то лучше используйте вариант с PHP или JavaScript, речь о котором дальше.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: