Инструкции файла .htaccess

Содержание:

Настраиваем редиректы для 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» на старый и новый домен соответственно.

Что такое mod_rewrite

Чтобы прописать редирект в файле конфигурации сервера Apache, нужно придерживаться некоторых правил.

Модуль mod_rewrite применяется на веб-серверах Apache для изменения URL-адресов. Для работы модуль использует набор директив, прописанных в основном конфигурационном файле Apache (httpd.conf) либо в файле .htaccess. Основными директивами модуля являются RewriteCond и RewriteRule. Правила для mod_rewrite должны соответствовать синтаксису регулярных выражений.

Расположение правил

Все директивы нужно прописывать после двух строк:

Options +FollowSymLinks
RewriteEngine On

Директива RewriteRule обязательно должна идти после директивы RewriteCond.

Заключительное слово

Описанные выше шаги гарантируют, что редиректы PHP будут настроены правильно. Однако, если вы используете большое количество перенаправлений, скорее всего, вам стоит переосмыслить структуру вашего сайта.

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

Вторая причина заключается в том, что страница, с которой вы перенаправляете, может собирать данные о ваших посетителях без вашего ведома, особенно если вы используете программное обеспечение веб-аналитики для отслеживания производительности вашего сайта. В нашем мире пост-GDPR (англ.) это может иметь серьёзные последствия.

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

Перенаправление веб страницы

Существует несколько способов перенаправления на другую веб-страницу с помощью JavaScript. Наиболее популярными из них являются и :

Пример

// Имитация щелчка мыши:window.location.href = «http://schoolsw3.com»;// Имитировать HTTP перенаправление:window.location.replace(«http://schoolsw3.com»);

Примечание: Разница между href и replace заключается в том, что удаляет URL адрес текущего документа из журнала документов, что означает невозможность использования кнопки «Назад» для перехода к исходному документу.

Совет: Для получения дополнительной информации о местоположении объекта, прочитайте наш справочник Объект location.

301 редиректы на платформе Хорошоп

Платформа «Хорошоп» имеет немало преимуществ, среди которых есть и возможность самостоятельного внедрения 301-х редиректов.

Для того чтобы внедрить 301 редирект на данной платформе, нужно:

Шаг 1. Cформируйте .CSV файл, содержащий 2 столбца. Левый — для указания относительной ссылки, с которой выполняется перенаправление и Правый — в котором будет указана относительная ссылка страницы, на которую необходимо выполнить перенаправление.

Шаг 2. Перейдите в раздел «Утилиты», «Редиректы ссылок», «Импорт редиректов» и загрузите сформированный файл.

Шаг 3. Выполните проверку реализации редиректов описанными выше способами.

Существует возможность задать автоматическое правило склейки зеркал со слешем «/» и без.

Для этого в том же разделе админпанели нажмите «Генератор редиректов», выберите нужное правило и укажите шаблоны, для которых следует его применить. После чего нажмите «сгенерировать».

Настройка редиректа на PHP сайтах

На самом деле 301 редирект php создается примерно по той же схеме что и HTACCESS. Работа по переадресации будет выполняться, если заранее прописать команду таким образом, чтобы посетителю сайта (пришедшему по старому адресу) отправлялись заголовки уже нового сайта.

Скрипт для внедрения такого типа переадресации следующий:

<?php
Header(«http1.1 301 moveed permanently»);
Header(«locationhttp//www.newdomain.ru/newdir/newpage.htm»);
Exit();
?>

В соответствующие места представленного кода необходимо подставить соответственно новый адрес и подкаталог нового ресурса.

Обеспечиваем безопасность сайта

Файл .htaccess предоставляет большие возможности для защиты сайта от вредоносных скриптов, кражи контента, DOS-атак. Также можно защитить доступ к определенным файлам и разделам.

5. Запрещаем загрузку картинок с вашего сайта

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

Осадите воришек при помощи этого кода:

Заменяете «mysite.com» на адрес вашего сайта и создаете изображение с любым сообщением о том, что красть чужие картинки нехорошо, по адресу . Это изображение и будет показано на стороннем ресурсе.

6. Запрещаем доступ

Целым группам нежелательных гостей с определенных IP-адресов, подсетей, а также вредоносным ботам можно запретить доступ на ваш ресурс при помощи следующих директив в .htaccess.

Для нежелательных User Agents (ботов)

Список юзер-агентов можно дополнять, сокращать или создать свой. Перечень хороших и плохих ботов можно посмотреть здесь.

Частный случай такого запрета — запрет для поисковых роботов. Если вас почему-то не устраивает правило в robots.txt, можно запретить доступ, например, роботу Google при помощи таких директив:

Для подсети

Вписываем маску сети в строку после «deny from».

Спамные IP-адреса можно вычислить в логах сервера или с помощью сервисов статистики. В административной панели WordPress отображаются IP-адреса комментаторов:

К определенному файлу

Вписываем название файла вместо «myfile.html» в примере. Пользователю будет показана ошибка 403 — «доступ запрещен».

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

Для сайтов на WordPress важно ограничить доступ к файлу wp-config.php, т.к. в нем содержится информация о базе данных:

Для пользователей, пришедших с определенного сайта

Вы можете заблокировать посетителей с нежелательных ресурсов (например, со взрослым или шокирующим контентом).

7. Защищаем доступ к определенному файлу или папке

Для начала создайте файл .htpasswd, пропишите в нем логины и пароли в формате user:password и разместите в корне сайта. В целях безопасности пароли лучше зашифровать. Это можно сделать при помощи специальных сервисов генерации записей, например, такого. Следующим шагом добавьте директории или файлы в .htaccess:

Защита паролем папки

Вместо «/pub/home/.htpasswd» укажите путь до файла .htpasswd от корня сервера. Рекомендуем проверить доступ после установки кода.

8. Запрещаем выполнение вредоносных скриптов

Следующая группа директив защищает сайт от так называемых «скриптовых инъекций» — инструмента хакерских атак:

Все попытки причинить вред вашему ресурсу будут перенаправлены на страницу ошибки 403 «доступ запрещен».

9. Защищаем сайт от DOS-атак

Один из способов защиты — ограничить максимально допустимый размер запроса (ограничение отсутствует по умолчанию).

Для этого прописываем в .htaccess размер загружаемых файлов в байтах:

В примере указан размер 10 Мбайт. Если вы хотите запретить загрузку файлов, пропишите число меньше 1 Мбайт (1048576 байт).

Также можно изучить возможности директив LimitRequestFields, LimitRequestFieldSize и LimitRequestLine в официальной документации.

3.Другие примеры с htaccess

3.1. Запретить IP-адрес и браузер

Запретим открывать сайт для пользователя с браузера IE с IP-адресом 172.111.222.55

RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteCond %{REMOTE_ADDR} ^172\.111\.222\.55$
RewriteRule ^.*$ - 

Запретим для всех файл disable_file.html:

<Files disable_file.html>
deny from all
</Files>

3.3. Разрешить доступ с одного ip

Доступ будет разрешен только с одного ip-адреса 172.111.222.55

order deny,allow
deny from all
allow from 172.111.222.55

3.4. Запретить доступ с разных ip

Запретить доступ к сайту с нескольких ip-адреса 172.112.222.55, 172.113.222.55, 172.114.*.*

<Limit GET POST PUT>
order deny,allow
deny from all
deny from 172.112.222.55
deny from 172.113.222.55
deny 172.114.*.*
</LIMIT>

3.5. Редирект в URL с больших символов на маленькие

Все большие буквы в адресе URL будут переведены на маленькие.

RewriteRule  - 
RewriteRule ! - 

RewriteRule ^(*)A(.*)$ $1a$2
RewriteRule ^(*)B(.*)$ $1b$2
RewriteRule ^(*)C(.*)$ $1c$2
RewriteRule ^(*)D(.*)$ $1d$2
RewriteRule ^(*)E(.*)$ $1e$2
RewriteRule ^(*)F(.*)$ $1f$2
RewriteRule ^(*)G(.*)$ $1g$2
RewriteRule ^(*)H(.*)$ $1h$2
RewriteRule ^(*)I(.*)$ $1i$2
RewriteRule ^(*)J(.*)$ $1j$2
RewriteRule ^(*)K(.*)$ $1k$2
RewriteRule ^(*)L(.*)$ $1l$2
RewriteRule ^(*)M(.*)$ $1m$2
RewriteRule ^(*)N(.*)$ $1n$2
RewriteRule ^(*)O(.*)$ $1o$2
RewriteRule ^(*)P(.*)$ $1p$2
RewriteRule ^(*)Q(.*)$ $1q$2
RewriteRule ^(*)R(.*)$ $1r$2
RewriteRule ^(*)S(.*)$ $1s$2
RewriteRule ^(*)T(.*)$ $1t$2
RewriteRule ^(*)U(.*)$ $1u$2
RewriteRule ^(*)V(.*)$ $1v$2
RewriteRule ^(*)W(.*)$ $1w$2
RewriteRule ^(*)X(.*)$ $1x$2
RewriteRule ^(*)Y(.*)$ $1y$2
RewriteRule ^(*)Z(.*)$ $1z$2

RewriteRule  - 

RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 

Перенаправление по истечении некоторого времени

Чтобы отсрочить JS redirect page на несколько секунд, можно использовать JavaScript-функцию setTimeout следующим образом:

// перенаправление через 3 секунды (или 3000 мс)
setTimeout(function() {
window.location.href = "http://www.example.com";
}, 3000);
  • Время в функции setTimeout определяется в миллисекундах (то есть 1000 мс = 1 секунда).
  • Так как отображение веб-страницы браузером происходит последовательно сверху вниз, тэги script (которые не отмечены атрибутами defer или async) загружаются и выполняются до того, как отображается страница. Поэтому размещение кода в блоке <head></head> должно привести к немедленному выполнению кода и JS location redirect после указанного количества миллисекунд. Но можно разместить код в конце веб-страницы. Код будет выполнен, когда браузер достигнет этого места в веб-документе.

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

Скорость загрузки сайта — один из факторов ранжирования в поисковых системах. Увеличить ее можно в том числе с помощью директив в .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.

If и Директива Rewrite

Следующие несколько примеров показывают, что мы можем использовать Rewrite внутри директивы if.

Вы можете сделать условное переписывание на основе if, если условие сравнения с использованием переменных, таких как $scheme, $http_host, $http_user_agent, и т.д., как показано ниже:

if ($scheme = "http") {
  rewrite ^ https://www.andreyex.ru$uri permanent;
}

if ($http_host = andreyex.ru) {
  rewrite  (.*)  https://www.andreyex.ru$1;
}

if ($http_user_agent = MSIE) {
    rewrite ^(.*)$ /pdf/$1 break;
}

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

Обратите внимание, что вы можете также установить значение двух следующих параметров или выключить в файле конфигурации Nginx:

server_name_in_redirect on 
port_in_redirect off

Настраиваем отображение сайта

Посмотрим, что можно сделать с отображением всего ресурса или его разделов в браузерах пользователей при помощи .htaccess.

10. Заменяем индексный файл

Индексный файл — тот, что открывается по умолчанию при обращении к определенному каталогу. Обычно они называются: index.html, index.htm, index.php, index.phtml, index.shtml, default.htm, default.html.

Вот как это выглядит в структуре каталога:

Чтобы заменить этот файл на любой другой, размещаете в каталоге .htaccess и добавляете эту команду:

Вместо «hello.html» вписывайте адрес желаемого файла.

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

11. Добавляем или убираем html в конце URL

Сохранять или убирать расширение файлов в URL — дело вкуса каждого оптимизатора. Достоверных исследований влияния расширений в адресах на ранжирование ресурса нет, но каждый вебмастер имеет свое мнение по этому поводу.

Чтобы убрать .html:

Этими же директивами можно добавить/убрать расширение php.

12. Настраиваем кодировку

Чтобы избежать ошибок в отображении ресурса браузером, нужно сообщить ему, в какой кодировке создан сайт. Самые популярные:

  • UTF-8 — универсальная
  • Windows-1251 — кириллица
  • Windows-1250 — для Центральной Европы
  • Windows-1252 — для Западной Европы
  • KOI8-R — кириллица (КОИ8-Р)

Чаще всего используют UTF-8 и Windows-1251.

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

Пример директивы, которая задает для файла кодировку UTF-8:

А такая команда означает, что все загружаемые на сервер файлы будут преобразованы в Windows-1251:

В примерах приведены разные кодировки, но в рамках одного сайта кодировки в этих директивах должны совпадать.

13. Создаем кастомные страницы ошибок

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

Перед тем, как прописывать директивы, создайте в корне сайта папку error и разместите туда соответствующие файлы для страниц ошибок.

Зачем это нужно? Например, чтобы не потерять пользователя на странице 404, а дать ему возможность перейти в другие разделы сайта:

Сложные редиректы

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

  1. RewriteEngine включает или выключает работу механизма преобразования:

RewriteEngine on | off

Положение on-off включает и выключает работу модуля.

2. RewriteCond — определяет условие какого-либо правила, при котором происходит преобразование. Сразу после директивы чаще всего идут переменные %{HTTP_HOST} и %{REQUEST_URI}, которые означают адрес сервера (например, example.ru) и ресурс, запрошенный в строке HTTP-запроса, соответственно.

3. RewriteRule — идёт после одного или нескольких RewriteCond. Это правило преобразования URI, которое применяется только при условии выполнения RewriteCond.

Синтаксис директивы RewriteRule выглядит следующим образом:

 RewriteRule Шаблон Подстановка

Здесь стоит дать пояснение к используемым символам регулярного выражения, которое задает шаблоны строк:

Метасимволы используются для задания групп символов и меток в шаблоне:

  • ^ — метка начала строки,
  • $ — метка конца строки,
  • \ — экранирующий слеш, позволяет считать следующий за ним метасимвол обычным символом,
  • . — точка, обозначает любой символ, но только один,
  • () — группировка.
  • ! — отрицание,

Флаги определяют дополнительные опции для данного правила и перечисляются в квадратных скобках через запятую:

  • NC — (nocase) отключает проверку регистра символов.
  • R — (redirect) останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (302, MOVED TEMPORARY). С данным флагом можно указать другой код результата, например R=301 возвратит редирект с кодом 301 (MOVED PERMANENTLY).
  • L — (last) останавливает процесс преобразования, и текущая ссылка считается окончательной.

Что такое редирект 301 с www на без www

Redirect 301 – это постоянное перенаправление с одного URLа на другой. Такой тип переадресации просто пересылает и пользователей, и поисковые машины на другой URL. Помимо данного типа перенаправления существуют еще и временный, но его для перевода пользователя с адреса с www на без www не используют, а значит и рассматривать его в этой статье смысла нет.

Как настроить редирект с www на без www

Есть несколько способов настройки переадресации:

Через .htaccess. Для использования этого способа у вас должен быть доступ к файлу .htaccess, который находится в корневом каталоге вашего сайта. Если доступа нет, необходимо обратиться в службу поддержки для его получения. Файл можно загрузить через FTP соединение и затем модифицировать в блокноте

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

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1

Все, что нужно сделать вам – поменять domain.com на свой домен.
Чтобы сделать редирект с www на без www необходимо прописать другой код:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteRule ^(.*)$ http://domain.com/$1

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

Никогда не стесняйтесь задать вопрос службе поддержки – возможно, именно она поможет вам с проблемой, если она возникла

Также рекомендуется добавить собственные сайты в сервисы для вебмастеров от Google и Yandex. В этих сервисах также можно настроить предпочтения по выводу домена в результаты поиска с/без префиксом.

В обоих сервисах сделать это можно практически одинаково. Сначала необходимо открыть настройки сайта. В Google Webmaster Tools уже на этом этапе настройка заканчивается: в разделе “Site Settings” вы выбираете один из вариантов написания адреса.

В Яндекс Вебмастере же вам нужно будет поискать вкладку «Настройки индексирования» —> «Главное зеркало». Под надписью «Изменить главное зеркало» список с доступными вариантами отображения – выбираете тот, который вам по вкусу.

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

ИЗОБРАЖЕНИЯ

Слайд шоуГалерея слайд шоуМодальное изображениеЛайтбоксОтзывчивая сетка изображенийСетка изображенийГалерея вкладокЭффект наведения на изображениеНаложение слайда на изображениеНаложение на изображениеНаложение заголовка на изображениеНаложение иконки на изображениеЭффект к изображениюЧерно-белое изображениеТекст на изображенииИзображение с текстовым блокомИзображение c прозрачным текстомИзображение на всю страницуФорма на изображенииИзображение герояРазмытое фоновое изображениеФоновое изображениеВыравненные изображенияОкругленные изображенияИзображение аватарОтзывчивое изображениеИзображение по центруМинитюрное изображениеЗнакомство с командойЛипкое изображениеЗеркальное изображениеДрожание изображенияГалерея портфолиоПортфолио фильтрЗум изображенияЛупа изображенияПолзунок сравнения

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

Джон Мюллер предупреждает, что Google может не проиндексировать конечную страницу, если не соблюсти все правила. Нужно использовать канонический тег, внутренние ссылки и при необходимости тег hreflang для конечной страницы, а не той, с которой вы перенаправляете пользователя. Иначе Google получит неправильные сигналы и может не проиндексировать конечную страницу.

Настроить переадресацию можно через панель управления вашим хостингом или вручную средствами HTML, PHP, JavaScript.

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

Редирект для Nginx

Для серверов под Nginx нужно использовать файл nginx.config, добавьте код в секцию server. Если вы настроили виртуальные хосты, для каждого хоста нужно редактировать файлы отдельно.

С домена с www на домен без www

server {#...
    if($host~ * www\.(.*)) {
        set $host_without_www $1;
        rewrite ^ (.*) $ http: //$host_without_www$1 permanent;
    }#...
}

С домена без www на домен с www

server {#...
    if($host~ * ^  + \. + $) {
        rewrite ^ (.*) $ $scheme: //www.$host$1 permanent;
    }#...
}

После изменения nginx.config перезапустите nginx с помощью команды «service nginx restart». Проверить, все ли корректно заполнено, можно через команду «nginx -t».

Редирект для Apache

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

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

Скачайте .htaccess, добавьте код редиректа и загрузите файл заново. Если файла .htaccess нет, его нужно создать.

На домен без www

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site\.ru$ 
RewriteRule ^(.*)$ <a href="https://site.ru/https://site.ru/$1" class="redactor-autoparser-object">https://site.ru/https://site.ru/$1</a> 

На домен с www

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) <a href="http://www.site.ru/http://www.site.ru/$1" class="redactor-autoparser-object">http://www.site.ru/http://www.site.ru/$1</a> 

Редирект через PHP

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

Файл index.php расположен в корневой папке. Скачайте его и добавьте код или отредактируйте прямо в диспетчере файлов в панели управления хостингом.

На домен без www

<!--?php
header("Location: http://site.ru/", true, 301);
exit();
?-->

На домен с www

<!--?php
header("Location: http://www.site.ru/", true, 301);
exit();
?-->

Редирект через HTML

Редирект через HTML-код медленнее, он работает на стороне браузера. Код нужно добавить между тегами и страницы, с которой нужно перенаправить. В параметре content=»» указывают задержку по времени.

На домен без www

<meta http-equiv="refresh" content="0; url=http://site.ru/">

На домен с www

<meta http-equiv="refresh" content="0; url=http://www.site.ru/">

Редирект через JavaScript

Редирект настраивают и с помощью JavaScript, он работает на стороне браузера, как и HTML. Это медленный способ и не сработает, если у пользователя в браузере отключен JavaScript. Его обычно настраивают для редиректов с задержкой, если такое требуется.

Код для редиректа нужно добавить между и в код первой исходной страницы.

На домен без www

<script type="text/javascript">
    window.location.replace("http://site.ru/");
</script>

Для задержки:

На домен с www

<pre><script>
    window.location.replace("http://www.site.ru/");
</script></pre>

Через cPanel

cPanel — это платная панель управления веб-хостингом. В ней тоже можно настроить редиректы, причем не используя вводы кодов. Во вкладке «Домены» есть раздел «Перенаправления», там нужно настроить редирект.

На домен без www

  1. В списке выберите нужный домен.
  2. В поле «Перенаправляет на» пропишите его с префиксом http://.
  3. Поставьте отметку у «Перенаправлять только с www»

На домен с www

  1. В списке выберите нужный домен.
  2. В поле «Перенаправляет на» пропишите его с префиксом http://www.
  3. Поставьте отметку у «Не перенаправлять www»

Синтаксис .htaccess

Синтаксис файла простой: каждая директива (команда) начинается с новой строки, после знака # можно добавлять комментарии, которые не будут учитываться сервером. Изменения на сайте вступают в силу сразу, перезагрузка сервера не требуется.

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

Основные спецсимволы:

  • ^ — начало строки;
  • $ — конец строки;
  • . — любой символ;
  • * — любое количество любых символов;
  • ? — один определенный символ;
  • — последовательность символов, например, от 0 до 9;
  • | — символ «или», выбирается или одна группа, или другая;
  • () — иcпользуется для выбора групп символов.

Основные переменные:

  • %{HTTP_USER_AGENT} — поле User-Agent, которое передает браузер пользователя;
  • %{REMOTE_ADDR} — IP адрес пользователя;
  • %{REQUEST_URI} — запрашиваемый URI;
  • %{QUERY_STRING} — параметры запроса после знака ?.

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

Авторская схема: бесплатный редирект ссылки на uCoz

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

Идея в том, чтобы использовать бесплатный конструктор сайтов. Я сделал свой выбор в пользу конструктора uCoz. Вы получаете в свое распоряжение доменное имя третьего уровня и место на сервере, где размещается ваш “сайт”. Сам сайт нас мало интересует, а вот возможность ручного редактирования HTML сайта – это именно то, что принесет нам радость.

Оффтоп: кстати, пока я писал эту статью случился фейл с этой схемой с uCoz и, я думал, что она больше нежизнеспособна! Но, немного поломав голову, я нашел лазейку и теперь все ОК)) Дальше расскажу, в чем суть.

ШАГ 1. Регистрация и создание сайта

Заходим на uCoz – попадаем на страницу регистрации:

Форма регистрации пользователя uCoz

Заполняем необходимые поля:

Создание нового сайта на uCoz

Панель создания нового сайта

Теперь, придумываете адрес сайта (имя домена третьего уровня) и выбираете доступные варианты бесплатных доменов от uCoz. Рекомендую создавать сайты с именами, релевантными продвигаемым офферам, чтобы ссылка вызывала больше доверия в лице потенциального клиента. Мой выбор был очевиден)):

Создали сайт для редиректа

Следуя приглашению, переходим в панель управления.

ШАГ 2. Вставка кода редиректа

Полпути пройдено! Осталось правильно внедрить код редиректа в новоиспеченный сайт, чтобы он стал выполнять свое темное дело.

После того, как откроется панель управления сайтом, переходим на вкладку “Дизайн”:

Переходим на вкладку “Дизайн”

Нам нужно найти шаблон главной страницы сайта. На вкладке “Дизайн” есть выпадающий список шаблонов, действующих на сайте. Выбираем шаблон с названием “Страницы сайта”:

Выбираем шаблон страницы для редактирования

Прежде, чем редактировать шаблон, убедитесь, что ваш сайт работает и доступен по адресу, который вы задавали. Я проверил свой сайт по адресу casecollector.usite.pro (на момент прочтения вами статьи, он может уже не работать, т.к. uCoz периодически требует подтверждения активности сайта, а я мог на это забить):

Проверка работы сайта uCoz

Так будет выглядеть код для перенаправления на JQuery:

Вставить данный код нужно в начало секции <body>, как показано ниже (в своем примере я делаю редирект на главную страницу Википедии) :

Вставляем код редиректа на JQuery

Сохраняем шаблон и проверяем свой сайт, введя адрес в браузере (напомню, у меня был casecollector.usite.pro). Если все сделали правильно, то откроется желаемая страница и вас можно поздравить).

Что перестало работать?

Рассказываю про свой эпик фейл. Можете взять на заметку при проработке альтернативных схем. Суть в следующем: раньше (на протяжении последних нескольких лет) я всегда прогонял ссылки для теста через uCoz, как описано выше. НО! Я всегда использовал HTML или JavaScript редиректы. Причем, предпочтение отдавал HTML, т.к. больше шансов на успех в случае блокировки JS в клиентском браузере.

Пока писал статью, uCoz изменили алгоритмы валидации кода и, когда я решил по старой схеме сделать переброс на HTML, то получил вот это:

Новый алгоритм валидации кода на uCoz

Самое печальное то, что написав редирект ссылки на JavaScript я получил ровно такой же результат! Причем, все мои старые ссылки на HTML продолжают работать. Изменения коснулись только нового редактора кода шаблонов.

Терять такую вкуснятину я никак не хотел, поэтому, перепробовал буквально всё. Сработал единственный метод – вставлять редирект ссылки на JQuery, как я описал в примере выше.

Срок жизни редиректа

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

Уведомление о неактивности сайта

Это происходит потому, что uCoz мониторит ваш сайт и действия пользователей с ним и, в случае, если активности нет (подробнее читайте Условия использования), то сайт отключают.

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

Выход один: следите за почтой и своевременно восстанавливайте свои сайты. Именно по этой причине, я использую данную схему только для тестов.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector