301 редирект на htaccess одна из самых запрашиваемых услуг от СЕО оптимизаторов. Redirect 301 служит для переадресации с одной страницы на другую и сообщает поисковой системе что страница была перемещена.
С помощью файла htaccess можно сделать переадресацию с дублирующей страницы на основную, то есть мы убираем дубли страниц посредством 301 редиректа.
Чтоб записать переадресацию с одной страницы на другую нужно открыть через блокнот файл .htaccess в корне вашего сайта и записать такие строчки в начало файла:
RewriteEngine On (если такая строчка уже есть то пишем ваш код после нее)
RewriteCond %{REQUEST_URI} ^.*bezopasnost-avto-dorog/.*
RewriteRule ^bezopasnost-avto-dorog/$ http://%{HTTP_HOST}/avto-dorogy/? [R=301,L]
В этом примере мы переадресовываем со страницы вашсайт.ру/bezopasnost-avto-dorog на страницу вашсайт.ру/avto-dorogy
В первой строчке мы проверяем наличие текста "bezopasnost-avto-dorog" в ссылке и если это так, то во второй строчке смотрим чтоб это была нужная страница, а не дочерняя и отправляем на новую страницу.
Бывает ситуация, когда вам нужно сделать 301 редирект со страницы с GET пареметрами, например все страницы с параметром more=1 отправить на эту же страницу без этого параметра, для этого достаточно написать вот такие строчки по аналогии:
RewriteCond %{QUERY_STRING} ^.*more=1.*
RewriteRule ^(.*)$ http://%{HTTP_HOST}/%{REQUEST_URI}? [R=301,L]
Смотрим результат:
Мы узнали "как сделать 301 редирект", теперь попробуем применить его к задачи немного посложнее. Редирект с главной на главную без зацикливания.
Для 301 редиректа с index.php нужно использовать немного другой код, вот такого плана:
RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L]
Также, обратите внимание, если мы хотим 301 редиректом закрыть всю категорию то нужно писать
RewriteCond %{REQUEST_URI} ^.*category.*
RewriteRule ^category/(.*)$ http://%{HTTP_HOST}/cat/$1? [R=301,L]
В итоге все посты с категории category будут переадресовываться на категорию cat + имя поста.
Возможна ситуация когда правки htaccess не приводят ни к какому результату, тогда нужно сделать такие действия в последовательности:
Если вам нужна помощь, напишите свой вопрос в комментариях или в этой контактной форме.
Жмите лайк, если эта статья вам помогла решить проблему:
Благодарю за ответ, но не сработало... Не могу понять почему, вроде уже есть такие блоки наподобие. Пытался менять по разному, и [OR] ставил между условиями, и в одну строку условие объединял, но выдает ненужную строку выдает стабильно =)
В итоге пришлось делать редиректматч:
RedirectMatch 301 ^.*katalog/search/?$ site/katalog/search/result.
Вот только флагом NC его не проверишь, но зато работает =)
Добрый день.У меня поменялись только категории товаров, а ссылки на товары остались прежние. Как сделать так чтобы. если в адресе встречается старая категория, то подставлялась бы новая, но вся остальная часть ссылки не менялась.
Т.е. к примеру было: мой_сайт/chehol/brand_sony/aaa.html ,а стало мой_сайт/chehol/sony-case/aaa.html
Привет.
Я хочу поменять домен у моего сайта. Как это сделать в панели хостинга я уже разобрался, но мне нужен редирект для сохранения позиций сайта. Вы б не могли мне помочь.
Ссылки останутся прежними, поменяю только доменное имя.
Огромное спасибо за Вашу статью.
Столько блогов и форумов перечитала, но нигде не нашла решения своей проблемы. В моем случае это редирект со старой не существующей страницы на новую (Джумла)
RewriteCond %{QUERY_STRING} ^.*more=1.*
RewriteRule ^(.*)$ http://%{HTTP_HOST}/%{REQUEST_URI}? [R=301,L].
Здравствуйте!
Сайт на WP, страницы сайта имеют окончание .html
Когда-то был взломан сайт, в выдаче появилось много страниц с .php
Вроде все подчистили, но страницы в индексе есть.
Подскажите пожалуйста как сделать редирект с url такого вида мойсайт.ру/userfiles/video-audio/el-shema-nec-nd4550.php
на главную сайта
Фактически нужно прописать правило, если страницы не соответствую настройкам сайта, то перенаправлятся на главную
А подскажите пожалуйста такую штуку: дубль проявил себя на следующей странице: (-url-) продублировал главную. Как сделать 301 редирект в данном примере?
Огромное человеческое спасибо! Второй вариант не заработал, зато первый сделал редирект. Еще раз большое спасибо! В качестве благодарности твитнул запись
Как сделать редирект с (-url-)
на
(-url-)
Спасибо вам за ваши труды, все доходчиво и понятно. Я не особо разбираюсь в htaccess взяла скопировала ваш код для гет параметров исправила переменную и все заработало. Я не сильно поняла как сделать 301 редирект, но зато то что вы дали работает, а значит дело сделанное и проблема решена.
Проблема с redirect 301 index.php to / не решена с помощью вашего кода. Забросила все как вы описываете, но желаемого результата не получила.
К вам можно обратиться за помощью?
Сколько будет стоять сделать редирект с index.php на / ?
Добрый день!
Хочу попросить помощи в редиректе.
Есть адрес : site/katalog/search
и есть site/katalog/search/result.
Как-то нужно сделать так, чтобы первая строка редиректилась на вторую (но если будет вторая, то она не должна претерпевать изменений). Без зацикливания у меня это сделать не получалось в htaccess... Через php придется? Заранее благодарю!