Полное руководство по 301 редиректу
Содержание:
- Введение
- Оптимизируем работу сайта
- Зачем нужен .htaccess и где его искать
- Как сделать с помощью Nginx редирект с https на http
- Как работают редиректы
- Как избежать заражения
- Как следует лечить редиректы
- Общие правила работы с .htaccess
- Путь хранения файлов сессий
- Как не правильно делать перенаправление
- Возможные проблемы с сайтами Opencart (русской сборки OcStore)
- Что такое RivaTuner Statistics Server? Как установить, настроить и пользоваться программой?
- Настраиваем редиректы для SEO
- Настраиваем отображение сайта
- Обеспечиваем безопасность сайта
- Редирект на HTTPS 301 в .htaccess
- 14-08-20
- Поисковые фразы
- Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы
- Почему 301 редирект, а не canonical
Введение
Что такое перенаправление (Redirects)?
Перенаправление означает, что веб-сайт может перенаправить запрос ресурсов на другой URL/конечную точку. Предположим, что вы отправляете запрос на apple.com, а apple.com может перенаправить вас на другой сайт (new-apple.com), так что вы окажетесь на new-apple.com, даже если исходный запрос был сделан для apple .com. Это называется «перенаправление». Существуют различные типы перенаправлений в HTTP.
Стандартные коды статусов перенаправлений — 3xx
- 300 Multiple Choices множество выбора
- 301 Moved Permanently перемещено навсегда
- 302 Found найдено
- 303 See Other смотреть другое
- 304 Not Modified не изменялось
- 305 Use Proxy использовать прокси
- 307 Temporary Redirect временное перенаправление
- 308 Permanent Redirect постоянное перенаправление
Перенаправление может происходить на стороне сервера (Server-Side) или на стороне клиента (Client-Side).
Server-Side: Запрос на перенаправление отправляется на сервер, затем сервер уведомляет браузер о перенаправлении на URL-адрес, указанный в ответе.
Client-Side: Браузер получает уведомление о перенаправлении на указанный URL-адрес напрямую, без вмешательства сервера.
Что такое Open Redirects?
Open redirect (Открытое перенаправление) это то, что написано в названии: Открытое (Open) перенаправление (Redirects) на любой веб-сайт.
Почему это проблема?
Ну, это плохо с самого начала, подумайте об этом на мгновение, что если apple.com, ДОВЕРЕННЫЙ веб-сайт, позволяет вам перенаправить на любой другой веб-сайт. Тогда злонамеренный пользователь может просто перенаправить apple.com на attacker.com, и люди все время будут думать что они находятся на apple.com, полагая, что ему доверяют, но на самом деле это не так. Поэтому разрешать перенаправления на любой веб-сайт без проверки или без надлежащего уведомления пользователя — это плохо.
Оптимизируем работу сайта
Скорость загрузки сайта — один из факторов ранжирования в поисковых системах. Увеличить ее можно в том числе с помощью директив в .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.
Зачем нужен .htaccess и где его искать
Файл нужен для более гибкой настройки сервера под задачи оптимизатора. Задавать правила в .htaccess не стоит, если у вас есть доступ к главному конфигурационному файлу сервера .httpd.conf или apache.conf (название зависит от настроек операционной системы). Изменения в нем вступают в силу быстрее, запросы не перегружают сервер. Однако очень часто такого доступа нет, например, в случае с виртуальным хостингом. Тогда приходится прописывать нужные настройки через .htaccess.
Возможности .htaccess для оптимизации сайта:
- Настройка редиректов для SEO.
- Обеспечение безопасности ресурса в целом и отдельных разделов.
- Настройка корректного отображения сайта.
- Оптимизация скорости загрузки.
Где искать и как редактировать
Если файл .htaccess находится в корневой папке, действие команд распространяется на весь сайт, но разместить его можно в любой каталог. Тогда директивы будут касаться только конкретного каталога и подкаталогов. Таким образом, на ресурсе может быть несколько файлов .htaccess. Приоритет имеют команды файла, расположенного в каталоге, а не в корне.
.htaccess — общепринятое и самое популярное название, но не обязательное (оно задается в файле httpd.conf). Несмотря на непривычное название, создавать и редактировать файл можно в любом текстовом редакторе.
Некоторые CMS дают возможность редактировать файл через административную панель. В Битриксе его легко можно найти в разделе Контент — Файлы и папки:
В WordPress редактировать .htaccess можно с помощью модулей плагинов Yoast SEO и All in One SEO Pack.
Если файл .htaccess отсутствует, создайте его в текстовом редакторе и разместите в корневой папке сайта или в нужном каталоге (потребуется доступ к хостингу или по ftp).
Как сделать с помощью Nginx редирект с https на http
Файл Nginx должен содержать 2 секции server (для https и сайта http). В секции http нужно сделать редирект всех запросов на https. Для этого используется директива return. После этого выполняется обработка 2-й секции. К примеру:
server {
server_name losst.ru ;
charset off;
index index.php;
ssi on;
return 301 ;
set $root_path /var/www/losst/data/www/losst.ru;
root $root_path;
listen :80 default_server;
…
}
2-я секция уже с обработкой SSL принимает запросы на 443 порту:
server {
server_name losst.ru ;
ssl on;
ssl_certificate «/var/www/losst/losst.ru_le2.crtca»;
ssl_certificate_key «/var/www/losst/losst.ru_le2.key»;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security «max-age=31536000;»;
charset off;
index index.php;
set $root_path /var/www/losst/data/www/losst.ru;
root $root_path;
listen :443 default_server;
…
}
Здесь все достаточно понятно: инструкция return обеспечивает возврат нужных кодов ответов сервера. Мы осуществляем возврат кода 301 и вводим адрес куда будет перенаправлен посетитель. Помимо инструкции return, может использоваться и rewrite. Здесь нужно выполнить такие же действия:
rewrite ^/(.*)$ permanent;
Это стандартная запись регулярных выражений. В 1-й строке нужно выделить группу строк запросов, а во 2-й прописать правильное доменное имя. Директива может использоваться и без блока server:
if ($host ~* ^(losst\.ru|www\.losst\.ru)$ ){
rewrite ^/(.*)$ permanent;
}
На этом этапе нужно сохранить файл и выполнить тестирование конфигурации nginx:
sudo nginx -t
Если проверка прошла успешно, сделай перезапуск Nginx:
sudo systemctl restart nginx
Теперь проверьте ответ сервера при помощи curl:
curl -I losst.ru
Можно также дать возможность программе пройти весь путь редиректа:
curl ILa losst.ru
Сделать настройку перенаправления на https nginx не очень сложно. Все настройки сводятся к внесению строки в файл «конфиг». Редирект с https на http nginx настраивается аналогично. Необходимо только изменить несколько символов в параметрах retrun. Обязательно нужно выполнять проверку настроек перенаправлений с www и на https. Этот момент особенно важен для СЕО продвижения.
Вас также может заинтересовать: Повышение конверсии сайта: реальные способы и пошаговая инструкция
Как правильно перенести сайт с протокола http на https
Как работают редиректы
Редиректы нужны злоумышленникам для того, чтобы зарабатывать деньги. Деньги зарабатываются либо на воровстве посетителей, либо на переадресации посетителей на некие партнёрские программы (это приносит существенный доход). Также они используются для распространения вредоносного кода с целью получения контроля над компьютером или мобильным устройством жертвы.
Редирект представляет собой небольшой фрагмент кода. Обычно это фрагмент PHP или javascript. Данный фрагмент встраивается в один из существующих файлов. Это могут быть файлы CMS или формируется динамически страница, в которую подставляется вредоносный javascript, выполняющий переадресацию посетителей.
Различают статические и динамические редиректы. Статические редиректы всегда воспроизводятся по одной и той же схеме. Обычно статические редиректы представляют собой вставку вредоносного кода в один из файлов. Это может быть файл .htaccess, файл nginx.conf. Это может быть вставка в PHP или javascript.
Динамические редиректы намного сложнее, так как они воспроизводятся эпизодически. То есть учитывается много параметров. И в зависимости от того, какими параметрами (страна, время захода и так далее) обладает посетитель, ему формируется соответствующий код на javascript и редирект выполняется по различным условиям.
Редиректы можно анализировать разными методами. Самый простой – это использование внешних или сторонних сервисов. Например, панель вебмастера Яндекса и Google. Достаточно добавить заражённый веб-сайт в панель вебмастера и в разделе безопасности вы увидите описание проблемы, а также всю ту цепочку переадресаций, которую будет наблюдать пользователь, зашедший с мобильного устройства или с поисковой системы. Полезный сервис для выявления редиректа sitecheck.sucuri.net.
Как избежать заражения
Про это пишут все, всегда и очень много. Вот основные постулаты:
- делать постоянно бэкапы
- своевременное обновление как CMS, так и всех расширений
- создавать пароли из букв (прописных и заглавных) и цифр, возможно использовать символы, чем длиннее, тем лучше, это на случай брута админки
- взять за правило менять пароли, хоста, ftp, админки, и даже бд и это не параноя, а простое правило
- вести логи сервера с ротацией и чем больше срок их хранения, тем лучше
Чтобы избежать появления неприятностей типа редиректа, требуется следить за сайтами ежедневно работать. Ваш сайт это уже работа или хобби, на которое требуется тратить ежедневно достаточное количество времени.
Как следует лечить редиректы
- Нужно убедиться, что вы сможете 100% воспроизвести редирект. Потому что только в этом случае можно считать, что вы его удалили.
- Удаляем тот инжект javascript или фрагмент .htaccess файла, который порождает редирект. Пытаемся воспроизвести его. Если редирект не воспроизводится, то можем с уверенностью утверждать, что редирект удалён.
- Необходимо выполнить полное сканирование сайта с целью обнаружения вредоносных скриптов. Скорее всего, также обнаружатся хакерские шеллы, бэкдоры. Их необходимо удалить. После этого установить защиту от взлома и осуществить мониторинг сайта.
Все зависит от Ваших знаний и умений. Есть сканера для поиска редиректа, есть скрипты для поиска и перезаписи файлов на сервере, есть ssh и команды для работы на сервере. Самое простое это FTP и файлы, тут требуется меньше знаний, но больше времени. Главное понимание того, что если сайт на хосте не один, то искать и чистить надо все, редирект может быть на соседнем сайте и заражать не тот сайт, а только какой-то определенный из соседних, и все думают, что зараза только на том что редиректит или ПС его блокирует 99 процентов — это Ваша первая ошибка и заблуждение.
Общие правила работы с .htaccess
- Всегда делайте резервную копию файла перед внесением изменений, чтобы оперативно «откатить» их.
- Вносите изменения пошагово, добавляйте по одному правилу и оценивайте, как оно сработало.
- Если размещаете несколько файлов .htaccess в разных каталогах, прописывайте в дочерних только новые директивы, которые актуальны для конкретного каталога, остальные унаследуются от родительского каталога или файла в корневой папке.
- Очищайте кэш браузера: Ctrl + F5, в Safari: Ctrl + R, в Mac OS: Cmd + R.
- Если возникает ошибка 500, проверьте синтаксис правила (нет ли опечатки). Можно воспользоваться сервисами проверки файла .htaccess онлайн, например таким. Если ошибок не найдено, значит в главном конфигурационном файле такой тип директивы запрещен, придется обратиться за консультацией к программисту и хостинг-провайдеру.
- В директивах .htaccess кириллические символы не допускаются. Если необходимо указать адрес кириллического домена (мойсайт.рф), воспользуйтесь любым whois-сервисом, чтобы узнать его написание по методу punycode. Например, адрес «сайт.рф» будет выглядеть как «xn--80aswg.xn--p1ai/$1».
- Слишком большое количество директив в .htaccess может снизить работоспособность сайта. Старайтесь использовать файл только в том случае, если другим путем задачу решить нельзя.
- Если нет времени подробно изучать особенности директив, воспользуйтесь генератором .htaccess.
Путь хранения файлов сессий
Как не правильно делать перенаправление
Многие думаю, что достаточно физического перенаправления страницы, однако важно, чтобы ваш сайт передал в заголовках статус 301. Это даст сигнал поисковым системам о том, что нужно перенести ссылочный вес и репутацию вашего сайта на новый домен.Вот несколько неверных способов сделать перенаправление
<HTML> <HEAD> <META HTTP-EQUIV="REFRESH" CONTENT="1; URL=https://temchenko.com/km"> </HEAD> <BODY> </BODY> </HTML>
Вэбмастер этого сайта сделал перенаправление прямо в html файле.
<script> window.location = 'https://joker-prognoz.ru'; </script>
Видимо этот вэбмастер больше любит javascript
Принудительное перенаправление сервером
Иногда панель хостинга предоставляет возможность «по галочке» создать перенаправление. Однако в ряде ситуаций это не то, что нам нужно. И это может привести нас, например, к невозможности восстановить выгрузку из 1С после переезда на https или перенести ссылочный вес на новый домен из-за отсутствия в ответе сервера статуса 301.
Пример кода для перехода на https
Ниже приведены примеры кода для файла .htaccess. Данный файл располагается в корневом каталоге вашего сайта.
Пример 1
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} </IfModule>
Пример 2
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} </IfModule>
Пример 3 (с переходом с www)
// Совместно с перенаправлением с www <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*) RewriteRule ^(.*)$ https://%1/$1 RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} </IfModule>
SSL сертификат
Нужно помнить, что обязательным условием работы https на сервере является наличие SLL. Сертификат можно получить как платно так и бесплатно.
Бесплатный SSL
Пожалуй самой популярной платформой бесплатных SSL является Let’s Encrypt. Вы можете самостоятельно настроить его на своём сервере. Однако не каждый хостинг позволяет это сделать и принуждает к покупке платного или к оплате услуги статического ip адреса.
В этом случае я рекомендую вам выбирать хостиг, который позволяет вам установить бесплатный сертификат. Я рекомендую вам хостиг beget. Он не только даст вам установить бесплатный сертификат, но и автоматически установить его и обновит, когда срок его действия закончиться. Переходите!
Тестирование файла .htaccess
Для тестирования файла .htaccess вы можете воспользоваться сервисом htaccess.madewithlove.be. Это вам может понадобиться в случаях если вы сделали несколько изменений в файле и вам нужно проверить результат работы без заливки нового кода на сервер.
Вы можете знать, что ошибки в файле .htaccess могут вызвать ошибки в работе сервера, а иногда и к блокировке хостинга (например, при вызове циклических перенаправлений).
Возможные проблемы с сайтами Opencart (русской сборки OcStore)
При редактировании файла
Так как в русской сборке OcStore после установки файл имеет имя htaccess.txt следует для исправления выполнить следующую посетить корневую папку сайта и найти файл «.htaccess.txt».
Переименовываем его и удаляем часть «.txt», так, чтобы файл назывался «.htaccess».
Переходим в «Дополнения»-«Менеджер дополнений» и очищаем Кеш (кнопка в правом-верхнем углу).
Все готово.
При работе с HTTPS
В первую очередь следует проверить настройки магазина перед перенаправлением на https так как в противном случае сайт может работать некорректно или не работать вовсе.
Далее переходим в сервер и выбираем.
Прокручиваем список и во вкладке «Безопасность» ставим «Да» у «Использовать SSL».
После этого переходим в на сервер в корневую папку и проверяем файл «config.php».
В нем в части про HTTPS проверяем указан ли адрес сайта как «https://site.ru», если нет указываем.
Аналогично следует проверить корректность отображения административной части, что необходимо сделать перейдя в папку «Admin».
Теперь открываем еще один файла «config.php».
Аналогично ищем ссылки на сайт с защищенным протоколом define и при необходимости исправляем на правильные (с https).
Подписывайтесь на наши социальные сети
Что такое RivaTuner Statistics Server? Как установить, настроить и пользоваться программой?
Настраиваем редиректы для SEO
Как мы уже упоминали, это самый популярный способ использования .htaccess. Перед тем, как настраивать тот или иной вид переадресации, убедитесь, что это действительно необходимо. Например, редирект на страницы со слешем в некоторых CMS настроен по умолчанию. О настройках редиректа для SEO мы писали в блоге.
При настройке 301 редиректов помните о двух правилах:
- Избегайте нескольких последовательных перенаправлений — они увеличивают нагрузку на сервер и снижают скорость работы сайта.
- Располагайте редиректы от частных к глобальным. Например, сначала переадресация с одной страницы на другую, затем общий редирект на страницы со слешем. Это правило работает не в 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» на старый и новый домен соответственно.
Настраиваем отображение сайта
Посмотрим, что можно сделать с отображением всего ресурса или его разделов в браузерах пользователей при помощи .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, а дать ему возможность перейти в другие разделы сайта:
Обеспечиваем безопасность сайта
Файл .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 в официальной документации.
Редирект на HTTPS 301 в .htaccess
Завершающим этапом является добавление в WordPress 301 перенаправления в файле htaccess. Он регулирует работу Apache, определим существует ли этот файл на вашем сайте.
Apache — оболочка на чем работает сервер, это как на компьютере стоит Windows. Некоторые хостинги пренебрегают добавлением в репозиторий ресурса, пытаясь управлять с помощью сервера.
Идем в корень WordPress и смотрим. Если существует, то открываем его для редактирования, если нет, то создаем. Нужно подключиться к сайту через FTP соединение, мы используем FileZilla. Войдя в корневой каталог (определяем корень по папкам wp-content и wp-admin), находим htaccess и кликом правой кнопкой мыши выбираем “Просмотр/Правка”.
файл .htaccess в программе FileZilla
В появившемся окне программы, вводим конфигурацию написанную ниже после begin wordpress или перед end wordpress. Сохраняем нажатием CTRL+S, либо через меню файл-сохранить. Код подходит и для мультисайта с поддоменами.
Куда вставлять код для редиректа HTTPS
После сохранения изменений FileZilla запросит разрешение на перезапись файла htaccess, соглашаемся и программа начнет процесс загрузки.
Это позволит имеющиеся страницы WordPress перевести на https протокол и выводить их автоматически с правильным префиксом. Для проверки работы, зайдите на любую страницу и сотрите букву S, нажмите enter, если редирект с http на https WordPress сработал, то продолжаем.
14-08-20
Поисковые фразы
Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1/
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://%1/$1/
Почему 301 редирект, а не canonical
Например:
<link rel=»canonical» href=»http://www.web-profy.com/page.html" />
Тег rel=canonical актуален в тех случаях, когда необходимо сообщить поисковой машине единый целый адрес контента страницы. При таком варианте вашему сайту не помешает использовать динамические переменные атрибутов для URL-ов. Динамические URL могут способствовать индексации нескольких версий URL для каждой отдельной страницы, что выражается в дублировании контента (крайне нелюбимый вариант для большинства поисковиков).
Конечно, тег с атрибутом rel=canonical может выручить в целом ряде случаев, однако он не способен полноценно заменить 301 редирект сайта. Для этого есть несколько оснований:
- Поисковые машины не воспринимают тег rel=canonical в качестве адресного указания к действию, а вот 301 редирект оказывается той самой инструкцией, обязательной к исполнению.
- Многие системные администраторы отдают предпочтение именно 301 редиректу потому, что он прописывается в одном файле для всего сайта, а код тега rel=canonical вставляется на каждой странице.
Тег rel=canonical становится актуальным при переадресации страниц блога (при наличии доступа к его коду, позволяющего внести в него необходимые модульные теги). Если же необходимость в использовании 301 редиректа возникает тогда, когда сайт давно и успешно работает и наполнен нужным контентом, это может привести к потере исходных страниц и связанных с ними комментариев, социальных связей, которые наверняка уже прописаны в SEO.
Рекомендуемые статьи по данной теме:
- Адаптивная верстка сайта: гайд для начинающих
- Файл htaccess: применение, включение, настройка
- Внешняя оптимизация сайта: этапы, сервисы, помощь