! Все правила выполняются в прямом порядке их следования в файле .htaccess и правило, написанное позже, и будет выполняться позже.
! Для сайтов, на которых используется не сервер Apache, аналогичные 301 редиректы легко настраиваются с помощью PHP:
! Оптимально настраивать все редиректы сразу на конечную страницу (без промежуточных перенаправлений, в один шаг) это улучшает их восприятие со стороны поисковых систем и пользователей.
RewriteCond %{HTTP_USER_AGENT} (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone) [NC]RewriteRule (.*) http://mobile.site.ru/ [L,R=301]
RewriteCond %{HTTP_USER_AGENT} !(accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer) [NC] RewriteRule (. — спецсимвол начала строки;
$ — спецсимвол конца строки;
! — спецсимвол отрицания;
. — точка, заменяет любой символ, но только один;
() — группировка;
\ — «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом.Модификаторы используются после обычных, спецсимволов или их групп и позволяют расширить возможности шаблонов для срабатывания правил.
? — символ повторяется 0 или 1 раз.
+ — повторяется от 1 до 65536 раз.
* — повторяется от 0 до 65536 раз.
Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].
NC — флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
R — флаг Redirect, производит процесс остановки изменения URL-адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY).
L — флаг Last, останавливает формирования URL-адреса и строка считается окончательной.443$
RewriteCond %{REQUEST_URI} =/testpage.php
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI) [R,L]
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} =/testpage.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI> [QSA,L]
*Примечание:
Настройку редиректа с http
на https
необходимо проводить после установки SSL
-сертификата на сайт. Сначала спросите в поддержке хостинга, какой способ настройки переадресации актуальный в вашем случае. Если вы собираетесь настроить редирект с https
на http
вручную, используйте файл .htaccess
. Вносите по очереди разные команды, проверяя каждую из них вводом адреса с
.
Если сайт работает на Битрикс, исправьте абсолютные ссылки на относительные, затем обновите файлы sitemap.xls
и robots.txt
и внесите исправленную информацию в Яндекс.Вебмастер и Google Search Console. Настройте интеграцию с 1С
через протокол http
, чтобы не пришлось переписывать всю программу. Проверьте правильность работы переадресации через онлайн-инструменты (например, Redirect Checker)
Если все ссылки с http
без ошибок ведут на https
, установку SSL
-сертификата можно считать завершенной.
Источник Источник
301 редирект с помощью .htaccess
Редирект 301 — зачем он нужен? В процессе продвижения сайта может возникнуть ситуация, когда необходимо изменить url страницы. Причины тому могут быть разные: переезд на новый домен, склейка дублей страниц, или даже, не к ночи будут помянуты, санкции поисковых систем. Чтобы изменить url, используется перенаправление, правильно называющееся «301 Permanent Redirect».
Что такое 301 редирект?
301 redirect действует на постоянной основе, передает со старой страницы на новую ссылочный вес, ТИЦ сайта и PR. Также, если сайт находится в каталоге Яндекс или DMOZ, страниц нового сайта в нем, разумеется, не будет. Помимо этого, используется 301 редирект на другой сайт, и перенаправление с одной версии сайта на другую.index.php http://your-site.ru/articles.php? [R=301,L]
Полезное видео по теме:
Стоит ли использовать 301 редирект при санкциях поисковых систем
Бытует распространенное мнение, что при попадании сайта под санкции или, как их еще называют, фильтры поисковых систем, для выхода из-под них достаточно перенести сайт на другой домен, и настроить 301 редирект. К сожалению, это не совсем так. Когда-то перенаправление на новый домен действительно помогало спастись от фильтров. Однако уже при следующем обновлении алгоритмов это было учтено. Сайт действительно уходит из-под фильтра, но только на период одного-двух обновлений. В дальнейшем санкции, наложенные на сайт на старом домене, обязательно передадутся и новому, если не будет предпринято никаких мер.
Перенаправление с помощью 301 редиректа – действенный, удобный и полезный инструмент при оптимизации сайта, и устранении недоработок и ошибок на сайте. Тем не менее, использовать его нужно аккуратно. В том случае, если вы не вполне осознаете, какие последствия может понести за собой использование редиректа, для работ над сайтом лучше привлечь специалистов.
Как сделать редирект с одной страницы на другую php
Как сделать редирект одной страницы на другую
Как перенаправить страницу сайта на главную страницу. Ставим редирект с одной страницы на другую.
Перенаправление страниц важно для SEO оптимизации. За время развития сайта могут отмереть какие-нибудь ссылки или за счет движка появится дубли страниц. По хорошему все подобные ссылки нужно перенаправлять на страницу, наиболее соответствующую запросу пользователя.
Редирект делается через файл .htaccess, который находится в корне директории сайта. Для перенаправления с одной страницы на другую нужна такая конструкция:
redirect 301 /some_path/ /kuda_perenapravlyaem/ |
Где /some_path/ — страница, с которой нужно перенаправить.
Подобная команда имеет один важный недостаток. Она будет перенаправлять все страницы сайта в котором будет встречаться указанный путь. Однако, в других случаях, именно команда redirect 301 приходит на помощь, когда, например, не работают более продвинутые команды редиректа в htaccess. Имеется ввиду RewriteCond и RewriteRule.
Привет. Ты находишься на моём сайте. Я разработчик. Здесь я делюсь своими наработками и знаниями. Спрашивай в комментариях, если тебе что-то не понятно или пиши, если есть что добавить.
Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:
Редирект 301 с со страницы на страницу не затрагивая другие
691 просмотров Создание сайтов 20 Мар 2017
Как сделать 301 редирект/перенаправление с одной страницы на другую? Но не простое перенаправление. Допустим есть страница http://site.info/page, а так же есть страница http://site.info/page/narkotiki Нужно сделать 301 редирект с http://site..*$ http://site.info? [R=301,L]
В моём случае сработало. Если знаете ещё способы или есть вопросы, пишите в комментариях 😉
301 редирект (переадресация) через .htaccess – на все случаи жизни
Три важных совета и четырнадцать конкретных примеров установки 301 переадресации страниц через htaccess!
Советы
- Располагайте переадресации страниц в файле от частных к более глобальным (сверху вниз). Например: простая переадресация двух страниц стоит выше, чем глобальное правило редиректов с www на без www.
- Избегайте двух, трех и т.д. последовательных редиректов. Правила должны быть настроены так, что при возникновении редиректа он должен перенаправлять пользователя (робота) только один (!) раз. Каждое лишнее переадресация – это секунды драгоценного времени отдачи страницы, это нагрузка на сервер, это нечеткие команды для поисковых роботов.
- Не забывайте, что многие браузеры кешируют (запоминают редиректы), поэтому проверять переадресации лучше на сайте — http://www.(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
UPDATE 02/11/2016
Как сделать редирект: подробный обзор для гуманитариев
В этой статье вы найдете подробную информацию о редиректах. Познакомитесь с видами перенаправлений и узнаете, какие задачи они решают. Узнаете, как сделать редирект разными способами и какой метод перенаправления предпочтителен в конкретных случаях.
Что такое редиректы и зачем они нужны
Редирект — перенаправление пользователя с одного URL на другой. Например, при переходе по ссылке http://texterra.ru/blog/ браузер автоматически перенаправляет пользователя на URL https://texterra.ru/blog/.
Редиректы помогают корректно перенаправлять посетителей на нужные страницы сайта без ущерба для пользовательского опыта и без нарушения требований поисковых систем. Правильно выполненный редирект сохраняет авторитет или ссылочный вес страницы-донора и передает его на страницу-акцептор.
В данном случае донор – страница, с которой перенаправляются пользователи. Акцептор – страница, на которую направляются пользователи.
Вот примеры использования редиректов:
- Перенаправление с http на https. Пример указан выше.
- Перенаправление с URL с www на URL без www и наоборот. При переходе по ссылке https://tinkoff.ru браузер перенаправляет пользователя на https://www.tinkoff.ru. При переходе по ссылке https://www.vc.ru браузер перенаправляет посетителя на https://vc.ru/.
- Переезд сайта на другой домен. Пару лет назад коллеги из популярного издания отказались от названия «Цукерберг позвонит» и настроили редирект с адреса http://siliconrus.com на https://vc.ru/.
- Перенаправление трафика с одной страницы сайта на другую. Например, если в интернет-магазине нет какого-то товара, он может перенаправить трафик на страницу похожего продукта.
- Перенаправление пользователей на мобильную версию сайта. Если владелец ресурса использует для адаптации к мобильному трафику только мобильную версию сайта, он настраивает редирект мобильных пользователей с www.example.au на www.m.example.au.
С помощью редиректов владелец сайта направляет пользователей с неактуальных страниц на актуальные. Перенаправления классифицируются по функциональному назначению и по способу реализации.
Какие бывают виды редиректов и когда их используют
Для пользователя все редиректы одинаковы: при попытке перейти по одному URL они попадают на другой URL. Обычно интернет-серферы даже не замечают, что браузер перенаправил их с одного адреса на другой.
Браузеры и роботы поисковых систем определяют вид редиректа по коду состояния HTTP. Перенаправления могут иметь разный HTTP-статус: 301, 302, 303, 307. Рассмотрим каждый подробнее.
Редирект 301
Это самый распространенный вид перенаправления. HTTP-статус 301 значит, что ресурс навсегда перемещен с запрошенного URL на новый. После получения ответа 301 браузер делает новый запрос и перенаправляет пользователя на актуальную страницу.
Если вы используете редирект 301, авторитет и ссылочный профиль старой страницы передаются на новую. Например, не бойтесь потерять вес входящих ссылок при переводе сайта на безопасный протокол соединения. Корректный редирект 301 с http на https сохраняет эту характеристику ресурса и его конкретных страниц.
Редирект 302
В HTTP 1.0 статус 302 использовался для обозначения временного перемещения запрошенного ресурса на новый адрес. В HTTP 1.1 редирект 302 обозначает статус «Найдено» или Found. То есть ресурс существует, но владелец на некоторое время переместил его на новый адрес. Редирект 302 не передает авторитет и ссылочный профиль донора акцептору.
В HTTP 1.1 для временного перенаправления предложены редиректы 303 и 307. Это связано с некорректной обработкой статуса 302 в некоторых браузерах.
По стандартам HTTP 1.0 браузер после получения ответа 302 должен использовать для нового запроса метод POST. Разработчики некоторых браузеров не соблюдают этот стандарт и используют для нового запроса метод GET. В HTTP 1.1. эту проблему решают редиректы 303 и 307.
Вместо 302 для временного перенаправления лучше использовать редиректы 303 и 307.
Редиректы 303 и 307
В HTTP 1.1 статус 303 предложен вместо редиректа 302. Значение кода – See Other или «Смотрите другой ресурс». Для нового запроса браузер должен использовать метод GET. Применяйте редирект 303, когда у вас нет адекватного ответа на запрос пользователя, но имеется более или менее подходящая замена.
Редирект 303 подходит, когда на целевой странице есть формы. В этом случае важно, чтобы браузер делал запрос безопасным методом GET.
Статус 307 также используется вместо редиректа 302. Значение кода – Temporary Redirect или «временное перенаправление». Браузер не должен менять метод нового запроса. Запросы безопасными методами GET и HEAD выполняются автоматически. Запросы небезопасными методами, например, POST, выполняются с подтверждением пользователя.
Используйте редирект 307, чтобы показать, что искомый ресурс временно доступен по другому адресу.
Промежуточный вывод: в большинстве случаев владельцам сайтов подходит редирект 301. В этом случае HTTP-статус уведомляет поисковых роботов, что документ навсегда перемещен на новый адрес. Этот вид редиректа передает авторитет и ссылочную массу со страницы-донора на страницу-акцептор. Редиректы 303 и 307 используются, когда владелец сайта хочет временно перенаправлять пользователей с одного документа на другой.
Какие типы редиректов бывают
Редиректы классифицируются по способу реализации. Настроить перенаправление можно через файл .htaccess или nginx.config, средствами PHP, HTML, JavaScript. Подробнее о каждом типе ниже.
Что такое htaccess-редирект
Так называют серверный редирект, который настраивается в файле .htaccess для сайтов, которые находятся на серверах под управлением Apache.
Чтобы настроить перенаправление, внесите изменения в файл .htaccess. Для доступа к файлу воспользуйтесь FTP-клиентом, например, FileZilla. В настройках программы в меню «Сервер» включите принудительное отображение скрытых файлов. Файл .htaccess находится в папке с названием доменного имени ресурса в каталоге public_html.
Чтобы отредактировать файл, скачайте его на жесткий диск компьютера. Для этого выделите файл и в контекстном меню выберите соответствующую опцию. Чтобы загрузить отредактированный файл на сервер, выделите его в списке файлов и папок на жестком диске, откройте контекстное меню и выберите нужную опцию.
В интерфейсе FTP-клиента FileZilla слева доступны файлы и папки локального компьютера, а справа — файлы и папки удаленного сервера.
Также доступ к файлу .htaccess можно получить через панель управления хостингом. В cPanel откройте раздел интерфейса «Файлы – Диспетчер файлов».
В настройках диспетчера включите отображение скрытых файлов.
Скачайте файл на компьютер и отредактируйте. Также файл можно редактировать через cPanel.
Чтобы отредактировать файл .htaccess, откройте его в блокноте. Добавьте код редиректа. Сохраните изменения и загрузите файл на сервер.
О коде редиректов и настройках конкретных перенаправлений пойдет речь ниже.
Чтобы настроить редирект на сервере под управлением Nginx, нужно добавить код перенаправления в конфигурационный файл nginx.conf. Код добавляется в блоке server. Получить код редиректа можно с помощью конвертера.
PHP-редиректы
PHP-редирект работает на уровне сервера. Этот способ перенаправления считается менее предпочтительным по сравнению с редиректом через файл .htaccess, так как он работает медленнее. Но в некоторых случаях предпочтительнее использовать этот тип редиректа.
Например, если на сайте есть десятки страниц, для которых нужно прописать редирект, а также десятки страниц, для которых редирект не нужен, лучше настраивать перенаправления с помощью PHP.
Скачайте на жесткий диск файл index.php или откройте его для редактирования в диспетчере файлов панели управления хостингом. Файл находится в корневой папке сайта. Там же находится файл .htaccess.
Добавьте в файл index.php код редиректа. Сохраните изменения и загрузите файл на сервер.
JavaScript-редирект
Редирект с помощью кода JavaScript выполняется на стороне браузера, а не на стороне сервера. Чтобы посетитель попал со старой страницы на новую, скрипт редиректа должен полностью загрузиться в обозревателе. Поэтому JavaScript-редирект – более медленный способ перенаправления, чем серверные редиректы. Еще одна проблема — автоматическое перенаправление не сработает, если пользователь отключил в браузере JavaScript.
Тем не менее JavaScript-редиректы в некоторых случаях удобны. Например, их можно использовать для перенаправления с задержкой. Вы можете написать на старой странице сообщение вроде «Мы переехали на новый сайт, сейчас вы будете автоматически туда перенаправлены». Через несколько секунд пользователь автоматически попадет на новую страницу.
Чтобы реализовать перенаправление с помощью JavaScript, добавьте код редиректа между тегами и страницы, с которой нужно перенаправить пользователей. На сайтах под управлением WordPress это можно сделать с помощью бесплатного плагина Per page add to head.
Сохраните изменения на странице и проверьте, как работает редирект.
HTML-редирект
Этот тип перенаправления также работает на стороне браузера. Чтобы перенаправление сработало, обозреватель должен загрузить соответствующий HTML-код: метатег refresh. Поэтому этот тип редиректов работает медленнее перенаправлений на уровне сервера.
Чтобы реализовать редирект, добавьте код между тегами и страницы, с которой хотите перенаправить трафик.
Сохраните изменения и проверьте, как работает перенаправление.
Промежуточный итог: предпочитайте серверные редиректы, так как они удобнее для пользователей. В большинстве случаев перенаправление лучше настраивать через конфигурационный файл .htaccess для серверов на Apache и nginx.config для серверов на Nginx.
Где взять код редиректа
Если у вас нет соответствующей подготовки и знаний, есть два варианта. Можно обратиться к специалисту или воспользоваться онлайн-генератором кода. Подборка сервисов ниже сэкономит вам время и деньги:
- 301 Redirect Code Generator. Генерирует код редиректа для Apache, ASP и ASP.NET. Также создает код JavaScript и HTML-перенаправлений.
- Seomagnifier. Создает код редиректа 301 с домена с www на домен без www и наоборот.
- 301 Redirect Code Generator Tool. Создает редиректы со страницы на страницу, а также с домена без www на домен с www. Генерирует PHP-код, перенаправления для серверов на ASP и ASP.NET, HTML- и JavaScript-перенаправления.
- Генератор файла .htaccess. Создает код редиректов со страницы на страницу, а также между разделами сайта, генерирует скрипты перенаправлений с домена с www на домен без www.
- Универсальный генератор кода перенаправлений для .htaccess. Можно выбрать сценарий редиректа, указать URL и сгенерировать код.
- Генератор редиректов 301. Создает код перенаправлений для серверов на Apache, ASP, ASP.NET, а также код HTML- и JavaScript-редиректов.
- Генератор перенаправлений от Brontobytes. Поможет настроить редирект со старого домена на новый, изменить адрес отдельных страниц и разделов ресурса, настроить перенаправление с домена без www на домен с www.
- Пользователям серверов на Nginx будет полезен конвертер кода. Он трансформирует редиректы для .htaccess в перенаправления для nginx.config.
Как делать редиректы: популярные примеры
В этом блоке представлены наиболее популярные редиректы. Инструкции помогут вам настроить перенаправления без обращения к техническим специалистам.
Как сделать редирект с http на https
Часто владельцы сайтов сталкиваются с необходимостью сделать серверный редирект при переводе сайта на безопасный протокол соединения. Чтобы реализовать перенаправление, выполните следующие действия:
- Скачайте конфигурационный файл на жесткий диск или откройте его для редактирования в панели управления хостингом.
- Сгенерируйте код редиректа с помощью одного из предложенных выше сервисов.
- Добавьте код в файл, сохраните изменения и загрузите .htaccess на сервер.
Корректно перевести сайт на безопасный протокол помогут следующие ресурсы:
Как сделать редирект с или на www
Подробную инструкцию по перенаправлению с домена без www на домен без www через файл .htaccess читайте в статье о зеркалах сайтов. Если хотите, выполните этот же редирект с помощью php. Действуйте так:
- Загрузите на жесткий диск файл index.php.
- Сгенерируйте код редиректа.
- Вставьте код в файл, сохраните изменения и загрузите index.php на сервер.
- Укажите основной URL в настройках сайта. В WordPress это можно сделать в меню «Настройки – Общие».
В сгенерированном коде может быть упоминание сайта генератора. Оно не влияет на работу перенаправлений, поэтому его можно удалять.
Проверьте, как работает перенаправление. На иллюстрации ниже видно, что до настройки редиректа сайт был доступен по двум URL. После изменения файла index.php ресурс доступен по одному адресу.
Как настроить перенаправление с одной страницы
Чтобы настроить редирект с одной страницы на другую, отредактируйте файл .htaccess или index.php: добавьте в него сгенерированный код редиректа. Если сайт работает на WordPress, воспользуйтесь для настройки редиректов плагинами:
Перенаправления можно настраивать через панель управления сервером. В cPanel настройки доступны в разделе «Домены – Перенаправления». Инструкцию смотрите в статье о зеркалах сайтов.
Как настроить редирект при смене домена
При переезде на новый домен перенаправление настраивается так же, как редиректы с http на https или с домена с www на домен без www. Изменения можно внести через файл .htaccess или index.php.
Сгенерируйте код постраничного редиректа. Для этого укажите URL старого и нового домена и отметьте флажками опции, указанные на иллюстрации.
Добавьте код в файл .htaccess и сохраните изменения./klassica/(.*)$ /russkaya-klassica/$1
Частные случаи: редирект слэша и редирект расширения
Одни владельцы сайтов предпочитают URL со слэшем в конце, а другие без слэша: https://exampleblog.ru/page/ и https://exampleblog.ru/page соответственно. Поисковые системы считают варианты со слэшем и без него разными URL. Поэтому важно выбрать предпочтительную структуру сетевых адресов и настроить перенаправления.
Сгенерируйте код редиректа и добавьте его в файл .htaccess. Убедитесь, что отметили галочкой нужную опцию.
Чтобы настроить перенаправления с адреса с расширением на адрес без расширения, сгенерируйте код и добавьте его в конфигурационный файл. Редирект с URL с расширением .html на URL с расширением .php выглядит так:
RewriteEngine on
RewriteRule index\.html index.php [NC,R]
С помощью генератора можно получить код для других перенаправлений, например, для редиректов с поддомена на каталог или с верхнего регистра на нижний.
Как проверить редирект
Проверить редирект можно в браузере. Почистите кэш или откройте обозреватель в режиме инкогнито и введите нужный URL. Также проверять перенаправления можно с помощью веб-сервисов:
- Чекер PrCy.
- Redirect Checker.
- Redirect Check.
Чекеры показывают вид редиректа и статус ответа сервера при переходе на новый адрес.
Сделать редирект просто
Для этого в первую очередь выберите вид редиректа. В большинстве случаев подходит перенаправление 301 или постоянный редирект. Иногда для временного перенаправления стоит использовать редирект 303 и 307.
Затем выберите тип редиректа. Быстрее всего работают серверные редиректы, которые настраиваются с помощью конфигурационных файлов .htaccess для серверов Apache и nginx.config для серверов Nginx. Также можно настроить PHP-редирект с помощью файла index.php. JavaScript- и HTML-редиректы работают медленнее, поэтому используйте их в исключительных случаях.
Сгенерируйте код редиректа с помощью одного из предложенных в статье сервисов и добавьте его в конфигурационный файл или в файл index.php. Проверьте корректность редиректа вручную или с помощью веб-сервиса.
kak-sdelat-redirekt-podrobnyy-obzor-dlya-gumanitarievРедирект с index.html и .php на главную страницу через htaccess
Приоритет: Высокий
Если главная страница Вашего сайта доступна по адресу site.ru и site.ru/index.html (или index.php), то такие страницы являются дублями для поисковых систем. В таком случае необходимо закрыть index.html (index.php) от индексации или настроить для них 301 редирект с site.ru/index.html (index.php) на site.ru.
Содержание:
Как закрыть index.html и index.php от индексации
Чтобы закрыть дубли страницы от индексации, необходимо выполнить следующие действия:
1. Войти на хостинг сайта или подключиться к нему через FTP:
2. Найти и скачать файл robots.txt:
3. Открыть файл и вставить следующие строки:
Disallow: /index.html
Disallow: /index.php
Внимание! Узнать о файле robots.index\.html$ https://site.ru / [R=301,L]
Внимание! Не забудьте заменить https://site.ru/ на адрес Вашего сайта.
5. Сохранить файл и загрузить обратно на хостинг.
Как проверить редирект
Для проверки переадресации необходимо вставить URL-адрес сайта и перейти на него. Если произошла переадресация на главную страницу site.ru, то редирект сделан правильно.
Спасибо, что дочитали до конца. Переходите к следующей инструкции.
301 редирект: инструкция по настройке
4. Как настроить 301 редирект4.1. C помощью файла .htaccess (для веб-сервера Apache)Как найти файл .htaccess?
Как правило, файл размещен в корневой директории сайта:
Чтобы попасть в корневую папку сайта, вы можете использовать несколько способов:
- Файловый менеджер хостинга;
- Подключиться через FTP клиент;
- Использовать SSH доступ.
После нахождений файла достаточно нажать на него правкой кнопкой:
И выбрать редактиврование.(.*)/old-category/(.*)$ $1/new-category/$2 [R=301,L]
Если категория идет сразу после имени сайт (yousite.ru/category/), в таком случае используем:
RewriteRule old-category /(.*) / old-category /$1 [R=301,L]
– Редирект для URL с параметрами
К примеру, вам нужно установить редирект с http://yousite.com/page.php?sort=size. Параметр здесь «sort=articles». Код будет следующим:
RewriteCond %{QUERY_STRING} sort=size
RewriteRule .* http://yousite.com/page.php? [R=301,L]Настройка редиректа 301 и htaccess своими руками
Шутки ради: Вскружи голову роботу поставив редирект с www на www.
Содержание:
- Что такое редирект 301 и зачем он нужен
- Как настроить 301 редирект и файл htaccess
- Перенаправление с одной страницы на другую
- Перенаправление с www на без www
- Редирект с http на без https
- Операторы для управления htaccess
Что такое редирект 301 и зачем он нужен
Редирект № 301 (301 Permament Redirect) – это перенаправление посетителя сайта с удаленной страницы или некорректно работающей на более актуальную.
Редирект как бы оповещает поисковых роботов и пользователей, что страница больше не существует и что за место нее есть новая страница с актуальной информацией на которую он и переводит.
Технически переадресация практически незаметна и если вы не являетесь специалистом то не заметите что вас перевело на другую страницу, так как это происходит в доли секунды
Для сео продвижения 301 редирект передает еще и «вес» страницы, что благотворно влияет на тИЦ страницы и ранжирование (сортировка сайтов в поисковике).
Как настроить редирект 301 и файл htaccess
В начале файла htaccess всегда ставиться точка «.» — файл этот является для сервера Apache инструкцией по работе с некоторыми отдельными видами папок.
В 70% случаях этот файл уже есть на сервере, а если нет то чистый файл .htaccess можно создать в блокноте и сохранить под этим именем, а установить его на свой сайт можно используя любой FTP клиент например FileZilla. Располагается он должен непосредственно в «корне» сайта там где располагаются файлы index.html или index.php
Перенаправление с одной страницы на другую
Предположим мы удалили страницу или изменили ее адрес (URL), а через поиск идет трафик на наш сайт. Понятно, что это негативно влияет как на сайт так и на продвижение в целом. Чтобы этого избежать в файл . htaccess который вы можете скачать выше мы добавляем вот такую строку:
Redirect 301 /staraya-stranica.php http://www.vashsayt.ru/novaya-stranica.php
Где staraya-stranica.php название страницы с которой хотите сделать перенос, а novaya-stranica.php новая актуальная страница.
301 редирект — перенаправления с www на без www
Часто при сео продвижении сайта нам необходимо определиться с главным зеркалом. Для поисковых систем сайты например http://www.vashsayt.ru и http://vashsayt.ru это два разных сайта. Это означает что если вы не покажите поисковым роботам что это один и тот же сайт, то угодите по фильтр «Склеенные домены».
Он будет тормозить продвижение, а то и вовсе его остановит. ограничение по левой стороне
[] диапазон
() переменное значение
замена управляющих символов.
Если у вас появились вопросы задавайте их в комментариях и вы обаятельно получите ответ.
Автор: Аграчев Михаил
Общие правила перенаправления Htaccess 301
Существуют общие правила перенаправления htaccess 301, которые я ищу каждый раз, когда создаю веб-сайт, перенаправляю страницу для стратегии SEO для клиента или помогаю с планом перехода веб-сайта на SEO. Поэтому я подумал, что создам ресурс, где я смогу собрать все общие правила в одном месте, чтобы сэкономить время для каждого проекта.
Что такое файл Htaccess?
.htaccess, или файл доступа к гипертексту, представляет собой текстовый файл конфигурации, который управляет каталогом и любыми подкаталогами, расположенными на веб-сервере Apache.Если вы используете план веб-хостинга на базе Linux, ваши веб-ресурсы, скорее всего, будут работать на Apache. Возможно, вы видели файл .htaccess в определенных каталогах, особенно если вы развернули WordPress, Shopify, Craft или любое другое веб-программное обеспечение для управления контентом.
Файл .htaccess может содержать конкретные инструкции для сервера. Этот файл может настроить сервер так, чтобы он запрашивал пароль для каталога, в котором он находится. Файл .htaccess также можно настроить для автоматического перенаправления пользователей на другой индексный файл или сайт, ограничения или разрешения пользователей на основе IP-адресов и отключения списков каталогов.Возможно, вам никогда не понадобится редактировать файл .htaccess, но если вы это сделаете, вы должны убедиться, что файл называется только «.htaccess», с точкой впереди и без расширения файла .txt или .htm.
Общие правила 301 перенаправления Htaccess
Перенаправить одну страницу
Redirect 301 /pagename.php http://www.domain.com/pagename.html
Перенаправить весь сайт или домен на новый
Перенаправление 301 / http://www.domain.com/
Перенаправить весь сайт в подпапку
Перенаправить 301 / http: // www.domain.com/subfolder/
Перенаправить подпапку на другой веб-сайт
Redirect 301 / подпапка http://www.domain.com/
Перенаправить расширение файла, но сохранить имя страницы
Пример: Если вы хотите, чтобы расширение .html использовало то же имя файла, но использовало расширение .php.
RedirectMatch 301 (. *) \. Html $ http: //www.domain.com$1.php
Перенаправление со старого домена на новый
RewriteEngine на RewriteBase / RewriteRule (.подкаталог / index \ .php $ / path-to-new-location /? [L, R = 301]
Перенаправить сайт на HTTPS с HTTP для устранения дублированного контента
RewriteEngine на RewriteCond% {HTTPS} на RewriteRule (. *) Https: //% {HTTP_HOST}% {REQUEST_URI}
Перенаправить сайт с HTTP на HTTPS для устранения дублированного контента
RewriteEngine On RewriteCond% {HTTPS} на RewriteRule (. / d] +) /? $ Index.(. *) / старый-каталог /(.*)$ $ 1 / новый-каталог / $ 2 [R, L]
apache 2.2 — Почему 301 Redirect не работает после удаления расширения .PHP через HTACCESS?
Вместо того, чтобы «вообще не выполнять 301 перенаправление», я ожидал бы, что ваш код создаст цикл перенаправления. Поскольку более раннее перенаправление также перехватывает перезаписанный URL (более поздней директивой) и перенаправляет и т. Д. И т. Д.
не
.php версия
страниц не 301 редирект.Не так ли? Или здесь следует убрать «не» или «не»?
и
.php
и версии не.php
страниц доступны для просмотра.Может показаться, что возможно включение MultiViews. Для правильного выполнения директив mod_rewrite необходимо отключить MultiView. (Здесь вы либо используете MultiViews , либо mod_rewrite, однако у вас могут возникнуть проблемы с попыткой перенаправить , если MultiViews включен.) Чтобы гарантировать, что MultiViews отключен, добавьте в верхнюю часть файла
.htaccess
следующее:Опции - MultiViews
Однако, чтобы избежать цикла перенаправления, вместо сопоставления с
REQUEST_URI
, который изменяется при перезаписи URL-адреса (так же, как URL-путь, который соответствуетRewriteRule
шаблон ), вы должны либо сопоставить сTHE_REQUEST
(который содержит первую строку запроса и не изменяется) ИЛИ просто проверьте, что переменная средыREDIRECT_STATUS
пуста, чтобы убедиться, что вы проверяете только начальный запрос, а не перезаписанный запрос.\ s] +) \. php http://www.example.com/$1$2 [L, R = 301]NB: Всегда тестируйте с 302 (временными) перенаправлениями, чтобы избежать проблем с кешированием.
Однако ваше регулярное выражение можно немного очистить. В соответствии с вашими примерами URL-адресов
/ курсы
— это первый сегмент пути, однако ваше регулярное выражение соответствует «курсам /» в любом месте URL-пути. И вы разрешаете перенаправление любого URL-адреса с информацией о пути — это намеренно? Вам нужна только одна обратная ссылка; не два.% {REQUEST_URI} .php [L]Это может сработать для конкретных URL-адресов, которые вы тестируете, однако это правило может легко нарушиться (и оно не предназначено специально для подкаталога
/ course
).% {REQUEST_FILENAME} .php
не обязательно совпадает с% {REQUEST_URI} .php
. Таким образом, хотя условие может быть успешным, вы все равно можете переписать его на недопустимый URL-адрес, что может привести к бесконечному циклу — 500 Internal Server Error.Например, при запросе
/ course / blue-course / foo
(на основе вашего примера), где/ course
— это каталог в файловой системе, аblue-course.php
— это файл, который вы собираетесь переписать (нет подкаталога/ blue-course
), а/ foo
— это просто то, что было ошибочно добавлено в URL-адрес (возможно, даже злонамеренно третьей стороной), затем это приведет к ошибке 500. \ s] +) \.% {REQUEST_URI} .php [L]Обратите внимание, что это (по умолчанию) полностью переопределит любые директивы mod_rewrite в родительской конфигурации (каталог , контекст ).
HTTP 301 Основы постоянного перенаправления и правила .htaccess (добавлено 10 наиболее часто используемых правил) • Crunchify
Последнее обновление: , автор: App Shah 7 комментариев
Если вам нужно навсегда изменить URL-адрес веб-страницы или всего вашего веб-сайта и вы хотите, чтобы новые и вернувшиеся посетители и поисковые системы нашли вашу новую веб-страницу, рекомендуется использовать удобную для поисковых систем переадресацию 301.Редирект 301 — это код статуса HTTP для «перемещен навсегда».
Основные поисковые системы расправляются с веб-сайтами, которые используют скрытую переадресацию или указывают несколько доменов на один и тот же контент без использования надлежащего переадресации. Известно, что постоянное перенаправление 301 удобно для поисковых систем при необходимости.
Для создания постоянного перенаправления 301 с помощью файла
.htaccess
необходимо, чтобы ваш веб-сайт размещался на сервере на базе Apache (Linux, Unix). Если вы не уверены, простая проверка заголовка укажет тип вашего сервера.Если вы не уверены, что понимаете информацию о сервере, полученную при проверке заголовка, обратитесь за помощью к своему веб-хосту.
Есть какие-либо из приведенных ниже вопросов? Хотите перенаправление ниже?
- WordPress 301 перенаправление через htaccess и FTP
- URL redirect rewrite с использованием файла htaccess
- Простые перенаправления с .htaccess
- Руководство для начинающих по созданию переадресации 301 в WordPress
- Как добавить правило перезаписи URL в WordPress
- Как перенаправить страницу wordpress на другой URL-адрес htaccess
- WordPress 301 правила перенаправления htaccess
Базовый код для перенаправления:
Перенаправить 301 old_location new_location
2. Как перенаправить отдельную страницу
Redirect 301 /oldpage.php http://www.yoursite.com/newpage.php
Redirect 301 /oldpage2.php http://www.yoursite.com/folder/
3. Перенесли свой домен на другой сайт?
Вариант-1) Вы можете перенаправить весь сайт, включая полный URL-адрес
Для этого откройте свой
.(. *) $ "http \: \ / \ / newSite \ .com \ / $ 1" [R = 301, L]
Пример:
https://crunchify.com/Test1 будет перенаправлен на https://pro.crunchify.com/Test1Давным-давно я переместил свой блог на новый домен с
Crunchify.co
наCrunchify.com
. Я объяснил, как переместить его за 30 минут. Это было давно. Мне больше не принадлежит Crunchify.co.Дополнительную информацию см. Здесь: https: // crunchify.(. *) $ "http \: \ / \ / crunchify \ .com \ /" [R = 301, L]
Пример:
https://test.crunchify.com/Test1 будет перенаправлен на https://crunchify.com/4. Лучший способ перенаправить весь сайт в подпапку
Перенаправление 301 / https://crunchify.com/subfolder/
5. Лучший способ перенаправить подпапку на другой веб-сайт?
Redirect 301 / подпапка https://crunchify.com/
6.(. *) https: //www.domain.com% {REQUEST_URI} [R = 302, NC]
9. Как перенаправить сайт с HTTP на HTTPS и с HTTPS на HTTP?
Ознакомьтесь с подробным руководством.
Как перенаправить любой входящий запрос с незащищенного (HTTP) на безопасный (HTTPS) вызов?
10. (.(. *) http://crunchify.com/blog/%{REQUEST_URI} [R = 302, NC]
Дайте мне знать, если у вас возникнут вопросы по вышеуказанным правилам. Если вы хотите внести свой вклад в эти правила, не стесняйтесь обновлять нас через раздел комментариев ниже.
Присоединяйтесь к обсуждению
Если вам понравилась эта статья, поделитесь ею в социальных сетях. Остались вопросы по статье, оставьте нам комментарий.
Как перенаправить перезапись с помощью файла htaccess
Сводка
По умолчанию доступ к вашему веб-сайту можно получить как с www.example.com и example.com. С Google наказывает это из-за причин дублирования контента, вам следует ограничить доступ либо к www.example.com, либо к example.com. Некоторые ссылки могут выходить за рамки вашего веб-сайта и / или поисковые системы уже проиндексировали ваш веб-сайт по обоим адресам.
Ваш основной файл .htaccess находится в папке public_html. Чтобы узнать, как получить доступ к этому файлу, обратитесь к нашему руководству по .htaccess.
Перенаправление на или с WWW
Часть 1. Как перенаправить все ссылки на www.www.example.com $ [NC]
указывает, что следующее правило срабатывает только тогда, когда хост http (то есть домен запрашиваемый URL) не (- указан с «!») www.example.com.$ означает, что хост заканчивается на www.example.com — и в результате все страницы from www.example.com вызовет следующее правило перезаписи. Комбинированный с инверсивным «!» результат каждого хоста, который не www.(. *) $ содержит запрошенный URL без домена.
Следующая часть http://www.example.com/$1 описывает цель правила перезаписи. Это наш «последний» использованный доменное имя, где $ 1 содержит содержимое (. *).
Следующая часть также важна, так как она 301 перенаправить для нас автоматически: [L, R = 301]. L означает, что это последнее правило в этом забеге.После этой перезаписи веб-сервер вернет результат. R = 301 означает, что веб-сервер возвращает 301 перемещенный постоянно в запрашивающий браузер или поисковую систему.
Перенаправить на example.com/index.php
У вас есть веб-сайт с названием example.com, и вы хотите перенаправить все входящие URL-адреса на example.com/ на пример.$ http://example.com/index.php [L, R = 301] Объяснение этого перенаправления .htaccess 301:
Что делает этот код выше? Давайте посмотрим на Пример 1 — Перенаправьте example.com на www.example.com. Первая строка запускает перезапись модуль. Следующая строка:
RewriteCond% {HTTP_HOST}! Www.example.com $
$ означает, что хост заканчивается на www.example.com — и в результате все страницы с example.com вызовут следующее правило перезаписи. В сочетании с инверсивным «!» это результат каждый хост, кроме www.(. *) $ содержит запрошенный URL без домена.
Следующая часть http://www.example.com/$1 [L, R = 301] описывает цель правило перезаписи — это «окончательное» используемое доменное имя, где $ 1 содержит содержимое принадлежащий (.*).
Следующая часть также важна, так как она 301 перенаправить для нас автоматически: [L, R = 301]. L означает, что это последний правило в этом пробеге.После этой перезаписи веб-сервер вернет результат. R = 301 означает, что веб-сервер возвращает 301 перемещенный постоянно в запрашивающий браузер или поисковую систему.
Перенаправить посетителей на новый сайт
У вас есть старый веб-сайт, доступный по адресу oldexample.com, и вы есть новый веб-сайт, доступный по адресу newexample.com. Копирование содержание старого веб-сайта на новом веб-сайте — это первый шаг — но что будет после этого? Вы должны сделать 301 переезд навсегда перенаправить со старого домена на новый — это легко и имеет некоторые преимущества:
- Пользователи будут автоматически перенаправлены на новый домен — вам не нужно их сообщать.
- Поисковые системы будут перенаправлены на новый домен, и вся соответствующая информация будет быть перемещенным в новый домен (но это может занять некоторое время).
- Google PageRank ™ будет перенесен в новый домен, а также другая внутренняя информация. который используется для установки позиции страниц на страницах результатов поисковой системы (serp) — например, TrustRank.
Создайте перенаправление 301 для всех HTTP-запросов, которые идут в старый домен.(. *) $ http://www.newexample.com/$1 [L, R = 301] Это полезно, если вы используете www.newexample.com в качестве нового доменного имени. (см. также эту статью о перенаправлении доменов с www и без www). Если нет — используйте код примера 2.
- Пример 2 — Перенаправление с oldexample.com на newexample.com:
RewriteEngine On RewriteBase / RewriteCond% {HTTP_HOST}! Oldexample.(. *) $ http://newexample.com/$1 [L, R = 301]
Как добавить косую черту в конце
Некоторые поисковые системы удаляют косую черту в конце URL-адресов, которые выглядят как каталоги — например, Yahoo делает это. Однако это может привести к проблемы с дублированным контентом, когда доступно одно и то же содержание страницы под разными URL.Apache дает дополнительную информацию в Apache FAQ по серверу.
Давайте посмотрим на пример: example.com/google/ проиндексирован в Yahoo as example.com/google — в результате появятся два URL-адреса с такое же содержание.
Решение состоит в том, чтобы создать правило перезаписи .htaccess, которое добавляет завершающие косые черты к этим URL-адресам.(. *) $ http://example.com/$1/ [L, R = 301] Объяснение правила перезаписи добавления завершающей косой черты .htaccess:
Первая строка сообщает Apache, что это код для механизма перезаписи. модуля mod_rewrite Apache. Вторая строка устанавливает текущий каталог в качестве корня страницы. Но самое интересное:
RewriteCond% {REQUEST_FILENAME}! -F
RewriteCond% {REQUEST_URI}! Example.php
RewriteCond% {REQUEST_URI}! (.(. *) $ http://example.com/$1/ [L, R = 301]
Рекомендуемое содержание справки
Как создать редирект?
Предотвращение кражи полосы пропускания с помощью механизма перезаписи модов и.htaccess
Объясняет, как редактировать .htaccess
Статья базы знаний 289409 просмотров Теги: htaccessСоответствующее содержимое справки
Перенаправление www.yourdomain.com/default.html или index.html на http://www.yourdomain.com/index.php?act=whatever перенаправляет его на http://www.yourdomain.com/index.php%3fact=whatever In другими словами,
Как перенаправить пользователей на другую страницу с помощью PHP?
Что такое.htaccess и где я могу найти дополнительную информацию?
Как принудительно использовать https на всем веб-сайте.
В этой статье объясняется, как изменить настройки URL-адреса сайта или URL-адреса домашней страницы в WordPress.Это может быть полезно, если вы переместили свой сайт WordPress или планируете переместить свой сайт WordPress.
Redirects позволяет вам сделать перенаправление определенной веб-страницы на другую страницу и отображать содержимое этой страницы. Узнайте, как настроить постоянную (301 или временную (302) переадресацию).
Как запускать сценарии CGI для дополнительных доменов.
Как сделать так, чтобы подкаталог (или подпапка) действовал как public_html для вашего основного домена?
Advanced Redirects and Restrictions | Pantheon Docs
Перенаправление базового домена и HTTPS может обрабатываться с помощью функции основного домена.Перенаправления PHP можно использовать, если эти конфигурации не подходят или когда вам нужна особая логика перенаправления. В зависимости от потребностей сайта вам может не понадобиться ни одна, только одна или несколько из следующих конфигураций.
Логика перенаправления должна быть добавлена в
wp-config.php
для сайтов WordPress иsettings.php
для сайтов Drupal.Предупреждение
Если основной домен установлен на уровне платформы, все остальные домены (кроме домена платформы) будут указывать на ваш основной домен на корневом уровне .Если вы хотите перенаправить дополнительные домены на определенные страницы вашего сайта (например, с
olddomain.com
наnewdomain.com/old-landing-page
), не устанавливайте основной домен (или, если он установлен, удалите основной домен. Домен).Следующая конфигурация перенаправляет HTTP-запросы на HTTPS, например
http://env-site-name.pantheonsite.io
наhttps://env-site-name.pantheonsite.io
илиhttp: / /example.com
–https://example.com
.Если вы устанавливаете HSTS в пантеоне
.yml
, вам не нужно дополнительное перенаправление PHP.if (isset ($ _ SERVER ['PANTHEON_ENVIRONMENT']) && ($ _SERVER ['HTTPS'] === 'OFF') && (php_sapi_name ()! = "cli")) { if (! isset ($ _ SERVER ['HTTP_USER_AGENT_HTTPS']) || (isset ($ _ SERVER ['HTTP_USER_AGENT_HTTPS']) && $ _SERVER ['HTTP_USER_AGENT_HTTPS']! = 'ON')) { заголовок («HTTP / 1.0 301 перемещен навсегда»); заголовок ('Местоположение: https: //'. $ _SERVER ['HTTP_HOST']. $ _SERVER ['REQUEST_URI']); if (extension_loaded ('newrelic')) { newrelic_name_transaction («перенаправление»); } выход(); } }
Следующая конфигурация перенаправляет запросы для поддомена
.example.com с
поhttps://example.com/subdirectory/
.При использовании этого типа перенаправления необходимо сначала удалить основной домен из среды.
if (isset ($ _ ENV ['PANTHEON_ENVIRONMENT']) && ($ _SERVER ['HTTP_HOST'] == 'subdomain.example.com') && (php_sapi_name ()! = "cli")) { $ newurl = 'https://www.example.com/subdirectory'. $ _SERVER ['REQUEST_URI']; заголовок («HTTP / 1.0 301 перемещен навсегда»); заголовок ("Местоположение: $ newurl"); if (extension_loaded ('newrelic')) { newrelic_name_transaction («перенаправление»); } выход(); }
Следующая конфигурация перенаправит запросы для примера
.com / old
tohttps://example.com/new
:if (($ _SERVER ['REQUEST_URI'] == '/ old') && (php_sapi_name ()! = "cli")) { заголовок («HTTP / 1.0 301 перемещен навсегда»); header ('Местоположение: https: //'. $ _SERVER ['HTTP_HOST']. '/ new'); if (extension_loaded ('newrelic')) { newrelic_name_transaction («перенаправление»); } выход(); }
Следующая конфигурация перенаправит запросы для
example.com
,example.com/old
,example.com / another / path
иexample.com/old-path от
доhttps://example.com/new-path-for-all
:$ redirects = array ( "/", "/Старый", "/ другой / путь", "/ старый путь"); if ((in_array ($ _ SERVER ['REQUEST_URI'], $ redirects)) && (php_sapi_name ()! = "cli")) { заголовок («HTTP / 1.0 301 перемещен навсегда»); header ('Местоположение: https: //'. $ _SERVER ['HTTP_HOST']. '/ new-path-for-all'); if (extension_loaded ('newrelic')) { newrelic_name_transaction («перенаправление»); } выход(); }
Следующая конфигурация перенаправит запросы для:
-
, пример.com / old-url1
–example.com/new-url1
-
example.com/old-url2
–example.com/new-url2
-
example.com/old-url3
–example.com/new-url3
$ redirect_targets = массив ( '/ old-url1' => '/ new-url1', '/ old-url2' => '/ new-url2', '/ old-url3' => '/ new-url3', ); if ((isset ($ redirect_targets [$ _SERVER ['REQUEST_URI']])) && (php_sapi_name ()! = "cli")) { заголовок ('HTTP / 1.0 301 Перемещено навсегда '); заголовок ('Местоположение: https: //'. $ _SERVER ['HTTP_HOST']. $ redirect_targets [$ _SERVER ['REQUEST_URI']]); if (extension_loaded ('newrelic')) { newrelic_name_transaction («перенаправление»); } выход(); }
Следующая конфигурация перенаправит запросы для
sub1.example.com
,sub2.example.com
,sub3.example.com
иsub4.example.com
наhttps: // new .example.com
:if (isset ($ _ ENV ['PANTHEON_ENVIRONMENT']) && ($ _ENV ['PANTHEON_ENVIRONMENT'] === 'live') && (php_sapi_name ()! = "cli")) { if (in_array ($ _ SERVER ['HTTP_HOST'], array ( 'sub1.example.com ', 'sub2.example.com', 'sub3.example.com', sub4.example.com ))) { заголовок («HTTP / 1.0 301 перемещен навсегда»); заголовок ('Location: https://new.example.com'. $ _SERVER ['REQUEST_URI']); if (extension_loaded ('newrelic')) { newrelic_name_transaction («перенаправление»); } выход(); } }
Следующая конфигурация перенаправит запросы, указанные на любую страницу в
example.com/old/
, на ту же страницу вexample.com/new/
.Например,example.com/old/contributors.html
перенаправит наexample.com/new/contributors.html
:$ uri = $ _SERVER ['REQUEST_URI']; $ url_to_match = '/ старый'; $ subdirectory_toredirect = '/ новый'; if (strpos ($ uri, $ url_to_match) === 0) { $ redirect_uri = str_replace ($ url_to_match, "", $ uri); if ((php_sapi_name ()! = "cli")) { заголовок («HTTP / 1.0 301 перемещен навсегда»); header ('Местоположение: https: //'. $ _SERVER ['HTTP_HOST']. $ subdirectory_toredirect.$ redirect_uri); if (extension_loaded ('newrelic')) { newrelic_name_transaction («перенаправление»); } выход(); } }
При переходе с системы, в которой для обозначения домашнего каталога использовалась тильда, синтаксис немного отличается. Вот как можно разобрать имя пользователя и относительный путь, для которого был сделан запрос:
$ request_parts = explode ('/', $ _SERVER ['REQUEST_URI']); $ legacy_username = $ legacy_path = ''; if (isset ($ request_parts [1]) && strpos ($ request_parts [1], '~') === 0) { $ legacy_username = substr ($ request_parts [1], 1); $ legacy_path = substr ($ _ SERVER ['REQUEST_URI'], (strlen ($ request_parts [1]) + 1)); } if ($ legacy_username) { }
Сайты Drupal могут принудительно использовать строчные буквы, используя следующие параметры:
Установить общие автоматические настройки псевдонима на Изменить на нижний регистр в конфигурации модуля PathAuto (
/ admin / build / path / pathauto
).Включить Проверка URL-адреса с учетом регистра в конфигурации модуля глобального перенаправления (
/ admin / settings / globalredirect
).
Поскольку Drupal или WordPress не загружаются при обслуживании статических ресурсов (например, изображений, PDF-файлов, HTML-файлов), перенаправления PHP, использованные выше, не будут работать, если эти файлы запрашиваются напрямую. Вы можете использовать CloudFlare или другой составной CDN для обработки перенаправления файлов.
Вы также можете полностью удалить файл из старого местоположения.В этом случае запрос будет проходить через Drupal или WordPress. Вы можете позволить CMS обслуживать 404 или использовать перенаправление в
wp-config.php
илиsettings.php
, как показано в примерах выше.Если вы хотите ограничить доступ к файлам на основе исходного IP-адреса запроса, вы можете сделать это с помощью PHP.
В следующем примере ограничивается доступ к
/ wp-admin /
и/wp-login.php
на основе IP-адресов, перечисленных в массиве$ trust_ips
:function ip_in_list ($ ips) { foreach (explode (',', $ _SERVER ['HTTP_X_FORWARDED_FOR']) как $ check_ip) { foreach ($ ips как $ ip) { if (ЛОЖЬ! == strpos ($ check_ip, $ ip)) { вернуть истину; } } } вернуть ложь; } function is_from_trusted_ip () { $ trust_ips = массив ( 192.0,2,38 ', '198.51.100.12', '208.0.113.159', '98b9: 1da9: 71f7: 0953: f012: 8574: 3d58: 9ac9', ); вернуть ip_in_list ($ trust_ips); } if (isset ($ _ SERVER ['PANTHEON_ENVIRONMENT']) && (php_sapi_name ()! == 'cli') &&! is_from_trusted_ip ()) { $ to_lockdown = ложь; $ disallow_uri = массив ( '/wp-login.php', '/ wp-admin /', ); $ allow_uri = массив ( '/wp-admin/admin-ajax.php', '/wp-admin/admin-post.php', ); foreach ($ disallow_uri как префикс $) { if (stripos ($ _ SERVER ['REQUEST_URI'], $ prefix) === 0) { $ to_lockdown = правда; перерыв; } } foreach ($ allow_uri как префикс $) { if (stripos ($ _ SERVER ['REQUEST_URI'], $ prefix) === 0) { $ to_lockdown = ложь; перерыв; } } if ($ to_lockdown) { заголовок ('HTTP / 1.0 403 Запрещено '); echo 'Доступ запрещен.'; выход(); } }
В следующем примере ограничивается доступ к
/ user /
,/ admin /
и/ node /
на основе IP-адресов, перечисленных в массиве$ trust_ips
:function ip_in_list ($ ips ) { foreach (explode (',', $ _SERVER ['HTTP_X_FORWARDED_FOR']) как $ check_ip) { foreach ($ ips как $ ip) { if (ЛОЖЬ! == strpos ($ check_ip, $ ip)) { вернуть истину; } } } вернуть ложь; } function is_from_trusted_ip () { $ trust_ips = array ('192.0.2.38 ',' 198.51.100.12 ',' 208.0.113.159 ',' 98b9: 1da9: 71f7: 0953: f012: 8574: 3d58: 9ac9 '); вернуть ip_in_list ($ trust_ips); } if (isset ($ _ SERVER ['PANTHEON_ENVIRONMENT']) &&! is_from_trusted_ip ()) { $ to_lockdown = ложь; $ clean_request_uri = rtrim (mb_strtolower (strtok ($ _ SERVER ["REQUEST_URI"], '?')), '/'); if ($ _GET ['q'] == 'admin') { $ to_lockdown = правда; } elseif (substr ($ clean_request_uri, 0, 5) == '/ user') { $ to_lockdown = правда; } elseif (substr ($ clean_request_uri, 0, 6) == '/ admin') { $ to_lockdown = правда; } elseif (substr ($ clean_request_uri, 0, 6) == '/ node /' && substr ($ clean_request_uri, -4) == 'edit') { $ to_lockdown = правда; } if ($ to_lockdown && (php_sapi_name ()! = "cli")) { заголовок ('HTTP / 1.0 403 Запрещено '); echo 'Доступ запрещен.'; выход(); } }
В следующем примере ограничивается доступ к
/ user /
,/ admin /
и/ node /
на основе IP-адресов, перечисленных в массиве$ trust_ips
:function ip_in_list ($ ips ) { foreach (explode (',', $ _SERVER ['HTTP_X_FORWARDED_FOR']) как $ check_ip) { foreach ($ ips как $ ip) { if (ЛОЖЬ! == strpos ($ check_ip, $ ip)) { вернуть истину; } } } вернуть ложь; } function is_from_trusted_ip () { $ trust_ips = array ('192.0.2.38 ',' 198.51.100.12 ',' 208.0.113.159 ',' 98b9: 1da9: 71f7: 0953: f012: 8574: 3d58: 9ac9 '); вернуть ip_in_list ($ trust_ips); } if (isset ($ _ SERVER ['PANTHEON_ENVIRONMENT']) &&! is_from_trusted_ip ()) { $ to_lockdown = ложь; $ clean_request_uri = rtrim (mb_strtolower (strtok ($ _ SERVER ["REQUEST_URI"], '?')), '/'); $ slashes_removed_uri = str_replace (массив ('/', '% 2f'), '', $ clean_request_uri); if ($ _GET ['q'] == 'admin') { $ to_lockdown = правда; } elseif (substr ($ slashes_removed_uri, 0, 4) == 'пользователь') { $ to_lockdown = правда; } elseif (substr ($ slashes_removed_uri, 0, 5) == 'admin') { $ to_lockdown = правда; } elseif (substr ($ slashes_removed_uri, 0, 4) == 'узел' && substr ($ slashes_removed_uri, -4) == 'edit') { $ to_lockdown = правда; } if ($ to_lockdown && (php_sapi_name ()! = "cli")) { заголовок ('HTTP / 1.0 403 Запрещено '); echo 'Доступ запрещен.'; выход(); } }
Для более продвинутой безопасности и оптимизации рассмотрите услугу Advanced CDN от нашей группы профессиональных услуг.
и как его исправить?
Редирект 301 необходим при настройке новой веб-страницы или переносе веб-сайта, чтобы указать, что то, что вы ищете, больше не доступно и навсегда переместилось в новое место. Но что, если ваши 301 перемещенные навсегда коды состояния не работают должным образом или вызывают неправильный ресурс? Этот тип обслуживания веб-сайта необходим для обеспечения его работоспособности. Мы объясним общие типы проблем и ошибок перенаправления, а также способы их устранения.
Что такое 301 перемещено с постоянной переадресацией?
Каждый раз, когда вы посещаете веб-сайт, ваш браузер отправляет запрос на его сервер. Веб-сервер получает этот запрос, обрабатывает его и отправляет HTTP-заголовок и код состояния HTTP. Этот код состояния HTTP обычно не увидит кто-либо, посещающий веб-сайт, если не возникнет ошибка. Если сервер отвечает сообщением с кодом состояния HTTP, это его способ сообщить, что произошла какая-то ошибка.В каждом типе кода состояния HTTP есть тип категории, который можно идентифицировать по номеру, который относится к причине возникновения ошибки.
В случае перенаправления 301 этот тип кода состояния HTTP возникает, когда предполагалось перенаправление запроса на новую ссылку URL. Этот код состояния HTTP подпадает под категорию кодов ответа 3xx, все из которых относятся к запросам, связанным с перенаправлением.
В случае перенаправления 301 проблема возникает, когда возникает проблема при передаче запроса перенаправления со старой на новую постоянную ссылку URL-адреса на веб-сайте.Этот тип ошибки может возникать, когда на веб-сайт вносятся обновления или изменения, но ответ сервера, перенаправляющий пользователя на новую URL-ссылку, завершился неудачно.
Почему 301 человек перемещен навсегда?
Поскольку категория кодов состояния HTTP 3xx считается сообщениями перенаправления, это означает, что для доступа к веб-сайту необходимы дополнительные действия. В отличие от кодов состояния HTTP 5xx, которые связаны с проблемами связи между двумя серверами, ошибка 301 перемещено постоянно возникает из-за проблемы со ссылкой URL-адреса входящего веб-сайта, а не из-за попытки клиента получить к нему доступ.Хотя большинство браузеров автоматически обнаруживают постоянно перемещенный код ответа 301 и немедленно обрабатывают запрос перенаправления, если URL-адрес не связан должным образом, появится сообщение об ошибке 301. Некоторые другие причины возникновения ошибки 301 включают:
- Новое создание сайта
- Создана новая веб-страница
- Неработающие URL-ссылки
- Исправление веб-страницы и перенаправление на другую страницу
Как ошибка 301 может нанести ущерб репутации веб-сайта?
Ошибка301 может повлиять на репутацию бренда двумя способами — через рейтинг в поисковых системах и удобство использования.Если на вашем веб-сайте есть ошибки запроса перенаправления, поисковые системы не будут его правильно проиндексировать и, следовательно, снизят поисковый рейтинг из-за неспособности обнаружить содержимое страницы. Ошибка 301 также вызывает разочарование у посетителей, поскольку они не могут найти важный контент на определенных страницах веб-сайта.
Как исправить сообщение об ошибке 301?
1. Проверьте файлы Htaccess на наличие ошибок в URL-ссылкахБольшинство веб-сайтов работают на одном из этих двух типов популярного серверного программного обеспечения — Apache.Затем в этих серверных приложениях вы заглянете в файл htaccess в корневом каталоге файлов вашего веб-сайта, так как это поможет определить, где находятся инструкции по перенаправлению.
Что такое файл Htacess?
Htacess означает гипертекстовый доступ и является типом файла конфигурации сервера. Каждый файл содержит директивы конфигурации для сервера в каталоге. Проще говоря, каждый файл htaccess в основном дает инструкции серверу, которые могут включать требования к паролю для определенных областей каталога, а также настройку автоматического перенаправления в определенные области веб-сайта.Если вам нужно обновить файл htaccess, важно убедиться, что файл правильно назван только «.htaccess».
Чтобы найти файл htaccess в Apache, вы можете щелкнуть имя пользователя вашей учетной записи, связанной с хостингом вашего сервера. После того, как вы найдете файл htaccess в своем каталоге, вы можете открыть его в текстовом редакторе и найти строки Rewrite directives, которые позволят вам изменить их, чтобы обеспечить наличие соответствующих URL-ссылок для любых перенаправлений на вашем веб-сайте.
Есть два типа директив перезаписи, которые можно изменять:
RewriteCond
RewriteRule
Вам нужно будет выполнить оба эти действия в файле htaccess, чтобы убедиться, что нет перенаправлений на URL-адреса, которые больше не существуют. Если есть, вы можете временно удалить их и перезапустить сервер веб-сайта, чтобы посмотреть, решит ли это проблему.
Если ваш сервер работает на nginx, ваши директивы перезаписи идентифицируются как директивы возврата или перезаписи, в отличие от RewriteCond и RewriteRule.
2. Используйте сторонний инструмент для проверки любых редиректов 301Бесплатные инструменты, представленные ниже, — отличный способ провести быстрый аудит веб-сайта и дать некоторое представление о любых 301 перемещенных безвозвратно перемещенных ошибках, которые, возможно, потребуется изменить.
https://www.redirect-checker.org/
https://httpstatus.io/
Redirect Checker | Test Redirection for URL or All Website ☑
3. Резервное копирование веб-сайтаПрежде чем пытаться диагностировать какие-либо проблемы с сервером, связанным с веб-сайтом, в первую очередь рекомендуется выполнить полное резервное копирование базы данных вашего веб-сайта перед выполнением любого из следующих шагов.Это гарантирует, что при попытке устранить ошибку 301 перемещен постоянно, не произойдет потери данных.
4. Проверьте журналы сервера
Проверка журнала сервера позволит вам лучше понять текущий статус сервера. Журналы сервера могут помочь указать любые конкретные файлы, которые могут вызывать сообщение об ошибке 301, что позволяет легко обнаруживать и настраивать эти файлы вручную.
5. Проверьте свою карту сайта
Поисковые системыиспользуют вашу карту сайта для сканирования веб-сайта, поэтому важно убедиться, что в ваши URL-адреса нет ошибки 301.Если у вас есть какие-либо коды состояния 301 для несуществующих страниц, убедитесь, что они удалены. Это можно сделать по:
- Доступ к карте сайта вашего веб-сайта
- Загрузите полный список ваших URL-адресов
- Фильтр для любых 301 кодов состояния в списке
- Удалите коды состояния 301 и замените их правильным обновлением URL-адреса
6. Отметьте все файлы пользовательского кода
Если у вас есть какой-либо пользовательский код, встроенный в ваш веб-сайт с ошибками, это может вызвать проблемы с перенаправлением.Самый простой способ проверить это — удалить строку пользовательского кода и обновить страницу, чтобы увидеть, исчезло ли сообщение об ошибке, чтобы понять, было ли это корнем проблемы.
7. Измените любые коды ответа HTTP на 200, если вы не хотите перенаправлять
После того, как вы определили переадресацию 301 на своем веб-сайте, вы можете изменить любые непреднамеренные переадресации, изменив код ответа на категорию 200.
8. Удалите все цепочки и петли перенаправления
Цепочка перенаправления возникает, когда между двумя URL-ссылками существует более одного перенаправления.Сначала определите, существует ли какая-либо из этих цепочек, а затем замените их прямой ссылкой на конечный URL.
Цикл перенаправления — это ошибка связи, которая возникает, когда один URL-адрес перенаправляет обратно на другой URL-адрес в этой цепочке, вызывая ошибку 301. Вам нужно будет проверить свой список URL-адресов на наличие каких-либо 301 редиректов, чтобы понять, существуют ли какие-либо из этих циклов или цепочек на вашем веб-сайте.
9. Исправьте все неработающие перенаправления
Неработающие перенаправления происходят, когда URL-адрес ссылается на страницу, которая больше не существует.Вы можете определить неработающие перенаправления, выполнив те же действия, указанные выше:
- Доступ к карте вашего сайта
- Загрузите список ваших URL-адресов
- Отфильтруйте список для любых 301 кодов состояния
- Верните страницы, которые больше не существуют, или обновите URL-адрес, чтобы он отображал правильную страницу, он должен быть перенаправлен на
Поскольку и поисковые системы, и посетители используют переадресацию 301 как способ определения нового пункта назначения страницы, важно, чтобы эти ссылки обновлялись должным образом, чтобы отображать соответствующий URL-адрес, на который они должны быть связаны.Эти сообщения об ошибках могут отрицательно повлиять как на рейтинг в поисковых системах, так и на пользовательский опыт, если их не заметить.
301 Перенаправить index.php в домен (корневой) — Конфигурация сервера — Форумы SitePoint
МДж,
Во-первых, зачем вам перенаправлять ОТ скрипта, который вы ХОТИТЕ обслуживать, и заставлять Apache определять DirectoryIndex перед обслуживанием того же файла?
Хорошо, теперь это не в моей системе … ваша проблема может быть связана с конфигурацией вашего хост-сервера (другими словами, он может быть запрограммирован на отображение DirectoryIndex для вас).Если нет…
RewriteEngine On RewriteBase / блог / [отступ] Директива RewriteBase устанавливает базовый URL-путь (не путь к физическому каталогу) для перезаписи для каждого каталога (.htaccess). Эта директива требуется для перезаписи для каждого каталога (.htaccess), контекст которого является каталогом, доступным через директиву Alias. Если ваш URL-путь не существует в файловой системе или не содержится в вашем DocumentRoot, вы должны использовать RewriteBase в каждом файле .htaccess, где вы хотите использовать директивы RewriteRule.index \\. php $ - [L] [indent] Если {EWQUEST_URI} - это index.php, передать его - иначе ... [/ indent] RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. /blog/index.php [L] [отступ] Если запрос не является файлом и не каталогом, перенаправьте все, кроме пустой строки {REQUEST_URI} на blog / index.php - другими словами, вы пропустили цель перенаправления! Сделайте этот единственный символ необязательным. [/ Indent] # mod_rewrite используется Параметры + FollowSymlinks [отступ] КАК вышеуказанное будет работать без этого - который, вероятно, уже установлен в конфигурационном файле сервера? УДАЛЯТЬ.index \\. php $ http://www.example.com/ [R = 301, L] [отступ] Из-за флага Last в начале кода mod_rewrite, он никогда не будет сопоставлен. ЭТО твоя проблема.
Есть идеи?
Правильный порядок директив mod_rewrite. Я начинаю с заявления, что я хочу, чтобы мой код mod_rewrite делал, а затем кодировал это.