Как сделать редирект (301, 302). Общая тема -2

SeVlad
На сайте с 03.11.2008
Offline
1609
44320

Часть первая..

Задаём и отвечаем на вопросы по редиректам.

Полезные ссылки по теме:

http://htaccess.net.ru/ информация о файле htaccess. Есть примеры и генераторы.

https://devaka.ru/articles/redirect-301 Как сделать 301 редирект, статья Деваки ака Сергей Кокшаров.

https://www.rapidtables.com/web/tools/redirect-generator.html - простой генератор редеректов.


Кто хочет дополнить этот стратпост - пишите в личку.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
S
На сайте с 21.01.2011
Offline
91
#1

Всем привет.

Если я хочу сделать 301 редирект всего сайта на новый домен, с сохранением структуры сайта (site.com->site.net, site.com/A->site.net/A, site.com/B->site.net/B и т.д.), то помогут ли мне эти строки?

RewriteCond %{REQUEST_URI} (.*)

RewriteRule ^(.*)$ http://site.net/$1 [L,R=301]

Я так понимаю, что кроме строк в .htaccess, нужно только купить новый домен, верно? Или придется ставить копию сайта на новый домен?

Также на сайте стоит беплатный https-сертификат. Он переедет вместе с редиректом или нужно будет новый открывать под новый домен?

S
На сайте с 30.09.2016
Offline
469
#2
Shwepps:
RewriteCond %{REQUEST_URI} (.*)

Эта строка лишняя.

Shwepps:
Или придется ставить копию сайта на новый домен?

Файлы сайта должны быть расположены на домене site.net.

Shwepps:
Также на сайте стоит беплатный https-сертификат. Он переедет вместе с редиректом

Сертификат никуда не переезжает, он привязан к домену.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
falkas
На сайте с 21.01.2013
Offline
53
#3

Здравствуйте! У меня на форуме есть дубли. Открываем первую страницу в теме, адрес типа forum/topic1

Если у темя 2 и более страниц, то в навигации они имею вид forum/topic1?start=15 или forum/topic1?start=30. Но есть проблема, в навигации по странице есть и ссылка на первую страницу вида forum/topic1?start=0. В итоге у меня дубль с одинаковым содержанием forum/topic1?start=0 и forum/topic1

Можно как-то сделать редирект со всех тем с адресом в конце ?start=0 на нормальный адрес? Не затронув ?start=15 и т.д.

MyGoodJob.ru (https://mygoodjob.ru/) — проект о работе, мошенничестве и многом другом.
S
На сайте с 30.09.2016
Offline
469
#4
falkas:
Можно как-то сделать редирект со всех тем с адресом в конце ?start=0 на нормальный адрес? Не затронув ?start=15 и т.д.

Правильнее сразу сделать нормальный адрес.

falkas
На сайте с 21.01.2013
Offline
53
#5
Sitealert:
Правильнее сразу сделать нормальный адрес.

Я бы с радостью, но моих знаний не особо хватает. Разработчик этот косяк допустил еще в версии, выпущенной год назад. На замечания по этому поводу 0 реакции. (

S
На сайте с 30.09.2016
Offline
469
#6
falkas:
сделать редирект со всех тем с адресом в конце ?start=0 на нормальный адрес?

RewriteEngine On

RewriteCond %{QUERY_STRING} start=0
RewriteRule ^(.*)$ /$1? [R=301,L]
Мята
На сайте с 08.07.2013
Offline
46
#7

Здравствуйте. У нас сайт на Битриксе, на выделенном сервере, и не могу справится с редиректом с без www на www :( помогите, что делаю не так?

RewriteCond %{HTTP_HOST} ^домен.ru$ [NC]

RewriteRule ^(.*)$ http://www.домен.ru/$1 [R=301,L]

не реагирует

RewriteCond %{HTTP_HOST} !^www.(.*) [NC]

RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

при таком, делает такой редирект: http://www./

Вписываю в блок <IfModule mod_rewrite.c>

под строками

Options +FollowSymLinks

RewriteEngine On

---------- Добавлено 10.07.2019 в 13:08 ----------

если так, то в конце порт дописывается :(

RewriteCond %{HTTP_HOST} ^([^www].*)$

RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

То дописывает 80 порт: http://www.домен.ru:80/

S
На сайте с 30.09.2016
Offline
469
#8

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

J
На сайте с 20.02.2014
Offline
120
jkm
#9

Мята,

RewriteCond %{HTTP_HOST} ^домен\.ru($|:) [NC]
RewriteRule ^(.*)$ http://www.домен.ru/$1 [R=301,L]

Или

RewriteCond %{HTTP_HOST} ^(?!www\.)([^:]+) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
Мята
На сайте с 08.07.2013
Offline
46
#10

Sitealert, спасибо за совет, тоже думала, что вероятно энджинкс как-то может мешать.

jkm, ух-ты, оба варианта работают! Спасибо огромное!

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