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

fliger
На сайте с 17.09.2015
Offline
106
#671

^http://m.site.ru/pages/1.html$

^ - начало строки

http:// - SERVER_PROTOCOL

m.site.ru - HTTP_HOST

/pages/1.html - REQUEST_URI

$ - конец строки

Если URL неизменный, а редирект нужен с поддомена на основной домен, то и проверять нужно хост, а не писать тот бред, что указан выше:

RewriteCond %{HTTP_HOST} ^m\.site\.ru$ [NC]

RewriteRule ^.*$ http://site\.ru%{REQUEST_URI}? [R=301,L]

Для отдельной страницы:

RewriteCond %{HTTP_HOST} ^m\.site\.ru$ [NC]

RewriteRule ^page/1\.html$ http://site\.ru/page/1\.html? [R=301,L]

или в более расширенном варианте, чтобы было понятно:

RewriteCond %{HTTP_HOST} ^m\.site\.ru$ [NC]

RewriteCond %{REQUEST_URI} ^/page/1\.html$

RewriteRule ^.*$ http://site\.ru%{REQUEST_URI}? [R=301,L]

LS
На сайте с 27.07.2009
Offline
94
#672

Приветствую!

Что прописать в .htaccess, чтобы при заходе на:

site.ru/?page_id=дубль-страницы=16

site.ru/?page_id=еще-один-дубль-страницы=16

site.ru/?page_id=очередной-дубль-страницы=16

и т.д.

перенаправляло по маске на:

site.ru/?page_id=16

или на 404, но "?page_id=16" при этом, естественно, чтобы работала.

[umka]
На сайте с 25.05.2008
Offline
456
#673

RewriteEngine on

RewriteCond %{QUERY_STRING} ^page_id=.+=(\d+)$

RewriteRule .* /?page_id=%1 [R=301,L]

Лог в помощь!
fliger
На сайте с 17.09.2015
Offline
106
#674
'[umka:
;15554107']RewriteEngine on
RewriteCond %{QUERY_STRING} ^page_id=.+=(\d+)$
RewriteRule .* /?page_id=%1 [R=301,L]

Лучше так:

RewriteCond %{QUERY_STRING} ^page_id=(?>[^=]+)=(\d+)$

RewriteRule ^.*$ /\?page_id=%1 [R=301,L]

LS
На сайте с 27.07.2009
Offline
94
#675

Второй вариант сработал.

Спасибо!

T
На сайте с 04.04.2012
Offline
44
#676

Делаю такой редирект

redirect 301 /ресиверы-с-подпиской/мтс-тв /resivery-sputnikovye/mts-tv

редирект срабатывает наполовину, вот так

/resivery-sputnikovye/мтс-тв , то есть первая часть срабатывает, а вторая остается неизменной.

Оставлял и менял htaccess, оставлял почти пустым, все так же.

Движок joomla 3.8

Хостер пишет, что

"cms, там где-то установлен редирект, который не учитывает пути"

Подскажите куда рыть плз

R
На сайте с 23.07.2008
Offline
87
#677

Друзья, два вопроса.

1. Две страницы определяются как дубли:

http://site.com

http://site.com/index.html

Правильно ли будет сделать редирект с http://site.com/index.html на http://site.com таким образом:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/ [NC]

RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://site.com/$1 [L,R=301]

И как правильно нужно указать: http://site.com или http://site.com/

Подскажите?

2. Есть страницы на сайте

http://site.com/blog.html

Есть потребность перенести ее по адресу на постоянной основе:

http://site.com/blog/blog.html

а. Как это правильно прописать с помощью редиректа?

б. И что делать со страницей http://site.com/blog.html?

Мы ее переместим по адресу: http://site.com/blog/blog.html.

Значит в прежнем месте ее можно удалять?

Ведь если ее оставить, то будет дуль на сайте.

Подскажите

fliger
На сайте с 17.09.2015
Offline
106
#678

# После

RewriteEngine on

# вставить

RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(?:(?>[^/]+)/)*(?:default|index|main)\.(?:html?|php)\ HTTP/ [NC]

RewriteRule ^((?:(?>[^/]+)/)*)(?:default|main|index)\.(?:html?|php)$ http://site\.com/$1? [R=301,L]

# Условие RewriteCond, если правило должно работать для любых URL, в том числе с параметрами запроса вида index.php?id=2, можно убрать - в данном случае оно лишнее.

RewriteRule ^blog\.html$ /blog/blog\.html [R=301,L]

Файл по адресу /blog.html удалить.

MS
На сайте с 30.03.2016
Offline
31
#679

Здравствуйте, друзья!

Такая ситуация:

Купил трастовый домен, хочу подклеить его к своему свежерегу.

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

В интете много вариантов, но все спорные, не могу выбрать оптимальный.

Заранее благодарю

fliger
На сайте с 17.09.2015
Offline
106
#680
mrShmidt:
В интете много вариантов, но все спорные, не могу выбрать оптимальный.

Не настолько трудная для понимания тема, чтобы ее изучить для владельца сайта.

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