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

K1
На сайте с 23.05.2012
Offline
66
#61
Alexeevi4:
А чем вас не устраивают урлы с html? Если конечно не секрет...

Эстетически не нравятся :)

C
На сайте с 21.01.2016
Offline
2
#62

У меня есть строчка

RewriteRule   ^(.*) /redirect.php?$1 [L]

При обращении к сайту по адресу site.ru/anytext, происходит подмена на site.ru/redirect.php?$anytext

Далее в базе сверяется куда идет линковка и происходит уже редирект.

Меня интересует кусок кода, что я выделил.

Можно ли как-то через .htaccess сделать обработку более гибкой? Меня интересует так:

-если anytext равно числу от 0000 до 9999 - то обрабатывать как и должно (redirect.php?$anytext)

-иначе исполнять другое правило (redirect2.php).

---------- Добавлено 03.02.2016 в 02:27 ----------

Или хотя бы: если только цифры - условие 1, иначе - условие 2.

D6
На сайте с 15.04.2013
Offline
21
#63

Помогите, пожалуйста, нужно сделать следующий редирект со страниц типа

http://otkuda/katalog/id на http://kuda/katalog/id

http://otkuda/katalog/id/bla-bla на http://kuda/katalog/id

где id - числовой идентификатор. Спасибо!

T
На сайте с 24.10.2011
Offline
63
#64

Друзья, подскажите решение такой задачи

Есть ссылка вида:

http://tutadressaita.ru/category1/proekt1/?opt=comments

Она была изменена на:

http://tutadressaita.ru/category1/proekt1/?opt=discussion

Какое правило сможет через htaccess обработать 301 редирект со старой на новую ссылку?

Задал такой вопрос нескольким довольно уважаемым оптимизаторам - нет ответа. надеюсь на коллективный разум серча.

C
На сайте с 31.08.2004
Offline
87
#65

Здравствуйте.

Подскажите пожалуйста как сделать редирект с site1 на site2,

но при этом нужно чтобы с корня site1 перекидывало на site2/dir/

т.е. вот такое устроило бы

RewriteCond %{HTTP_HOST} ^(www\.)?site1\.ru$
RewriteRule ^(.*)$ http://www.site2.ru/$1 [R=301,L]

если бы не данное исключение из правил

tyumile
На сайте с 27.07.2005
Offline
138
#66

Коллеги, помогите решить вопрос.

На сайте интернет-магазина есть .htaccess с указанием 301 редиректов.

Редиректы оформлены следующим образом

RewriteRule ^monety/moneti-sssr-1965-1991/po-godam/1961-ru/$ /monety/moneti-sssr-1965-1991/po-godam/1965-1970/ [R=301,L]

при таком редиректе не передаются параметры, utm метки

добавил флаг QSA

RewriteRule ^monety/moneti-sssr-1965-1991/po-godam/1961-ru/$ /monety/moneti-sssr-1965-1991/po-godam/1965-1970/ [R=301,L,QSA]

на редиректах формата

plan-vypuska-pamytnyh-monet-na-2014-god.html?id=1

параметр передается, а на категориях формата

moneti-sssr-1961-1991/category-204/?id=1

не передается.

Помогите, что делаю не так?

J
На сайте с 20.02.2014
Offline
120
jkm
#67
Craftsman:
Здравствуйте.
Подскажите пожалуйста как сделать редирект с site1 на site2,
но при этом нужно чтобы с корня site1 перекидывало на site2/dir/

Правила применяются последовательно.

Первым правилом отправляем главную на /dir/.

Во второе правило попадёт всё остальное.


RewriteCond %{HTTP_HOST} ^(www\.)?site1\.ru$
RewriteRule ^$ http://www.site2.ru/dir/ [R=301,L]

RewriteCond %{HTTP_HOST} ^(www\.)?site1\.ru$
RewriteRule ^(.*)$ http://www.site2.ru/$1 [R=301,L]
disa66:
Помогите, пожалуйста, нужно сделать следующий редирект со страниц типа

http://otkuda/katalog/id на http://kuda/katalog/id
http://otkuda/katalog/id/bla-bla на http://kuda/katalog/id

где id - числовой идентификатор. Спасибо!


RewriteCond %{HTTP_HOST} ^(www\.)?otkuda$
RewriteRule ^katalog/\d+ http://kuda/$0 [R=301,L]


---------- Добавлено 12.02.2016 в 01:32 ----------

tyumile:
Коллеги, помогите решить вопрос.

На сайте интернет-магазина есть .htaccess с указанием 301 редиректов.

Редиректы оформлены следующим образом
RewriteRule ^monety/moneti-sssr-1965-1991/po-godam/1961-ru/$ /monety/moneti-sssr-1965-1991/po-godam/1965-1970/ [R=301,L]

при таком редиректе не передаются параметры, utm метки
добавил флаг QSA

RewriteRule ^monety/moneti-sssr-1965-1991/po-godam/1961-ru/$ /monety/moneti-sssr-1965-1991/po-godam/1965-1970/ [R=301,L,QSA]

на редиректах формата
plan-vypuska-pamytnyh-monet-na-2014-god.html?id=1

параметр передается, а на категориях формата
moneti-sssr-1961-1991/category-204/?id=1

не передается.

Помогите, что делаю не так?

Возможно, редиректы стоят не первыми и над ними есть правила, которые что-то меняют в параметрах.

А можно увидеть содержимое .htaccess полностью?

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


RewriteCond %{QUERY_STRING} =opt=comments
RewriteRule ^(.*)$ http://site.ru/$1?opt=discussion [R=301,L]
G
На сайте с 13.04.2013
Offline
88
#69

Вопрос такой: как составить регулярку, чтобы с site.ru/raskraskа.html/knizhka/albom/tetrad.html перенаправлял на site.ru/raskraskа.html

попробовал так:

RewriteEngine on

RewriteRule ^/([a-z-0-9])+\.html/[a-z-0-9]+$ /$1.html

не срабатывает

J
На сайте с 20.02.2014
Offline
120
jkm
#70
Gunesh:
Вопрос такой: как составить регулярку, чтобы с site.ru/raskraskа.html/knizhka/albom/tetrad.html перенаправлял на site.ru/raskraskа.html

попробовал так:
RewriteEngine on
RewriteRule ^/([a-z-0-9])+\.html/[a-z-0-9]+$ /$1.html
не срабатывает

^/ - то с чем работает RewriteRule не начинается с "/".

[a-z-0-9]+$ - в символьный класс нужно включить / и после добавить \.html.


RewriteRule ^([-a-z0-9]+\.html)/[-a-z0-9/]+\.html$ /$1

В таком виде это внутренее перенаправление. Для внешнего перенаправления добавить [R=301,L] и тогда будет 301 редирект.

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