Как настроить 301 редирект из старых УРЛ на новые?

12
R8
На сайте с 08.08.2011
Offline
84
722

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

Подскажите, пожалуйста, возможно ли настроить 301 редирект для всех УРЛ сайта вида

http://site.ru/GOODS_tovar.htm

http://site.ru/DIR_razdel.htm

на

http://site.ru/tovar.htm

http://site.ru/razdel.htm

Переезжаю на новый движок и в новых УРЛ не будет "GOODS" и "DIR"... Заранее благодарен за помощь.

obius
На сайте с 19.08.2015
Offline
56
#1

.htaccess


RewriteRule ^(.*)_(.*).htm$ /$2.htm [R=301,L]
или
RewriteRule ^(GOODS|DIR)_(.*).htm$ /$2.htm [R=301,L]
или
RewriteRule ^GOODS_(.*).htm$ /$1.htm [R=301,L]
RewriteRule ^DIR_(.*).htm$ /$1.htm [R=301,L]
R8
На сайте с 08.08.2011
Offline
84
#2

obius, спасибо за помощь

R8
На сайте с 08.08.2011
Offline
84
#3

Obius, вот только дошло дело до испытаний.

Что-то не работает 301 редирект... Попробовал все три предложенные варианта...

У меня в файле .htaccess еще такие строки написаны:

RewriteRule ^dir_(.+).htm$ dir.php?psu=$1 [L,QSA]
RewriteRule ^goods_(.+).htm$ goods.php?psu=$1 [L,QSA]
RewriteRule ^descr_(.+).htm$ descr.php?psu=$1 [L,QSA]

может из-за них не срабатывает 301 редирект?

obius
На сайте с 19.08.2015
Offline
56
#4

realmen80, скорее всего.

Вы с начало разберитесь, что куда редиректить нужно.

R8
На сайте с 08.08.2011
Offline
84
#5

Как я и писал. Сейчас УРЛ на сайте вида:

http://site.ru/GOODS_tovar.htm

http://site.ru/DIR_razdel.htm

а нужно чтобы редирект был на:

http://site.ru/tovar.htm

http://site.ru/razdel.htm

то есть без "GOODS_" и "DIR_" чтобы были УРЛ...

obius
На сайте с 19.08.2015
Offline
56
#6

Тогда для чего вам эти правила?


RewriteRule ^dir_(.+).htm$ dir.php?psu=$1 [L,QSA]
RewriteRule ^goods_(.+).htm$ goods.php?psu=$1 [L,QSA]
RewriteRule ^descr_(.+).htm$ descr.php?psu=$1 [L,QSA]

Закомментируйте их.

R8
На сайте с 08.08.2011
Offline
84
#7

Но я их и не прописывал. Они по умолчанию там прописаны после установки движка. Видимо нужны для корректной работы сайта на данном движке.

Когда я их убрал и прописал

RewriteRule ^(GOODS|DIR)_(.*).htm$ /$2.htm [R=301,L]

то при попытке открыть раздел - получаю ошибку

obius
На сайте с 19.08.2015
Offline
56
#8

А откуда в адресной строке site.ru? Это ваш сайт?

Зачем вы делаете редирект с ( урл с dir ) на ( урл без dir )?

Вы уверены, что ваш движок поймет, и сможет отобразить необходимую страницу?

Что это за движок с таким ЧПУ?

R8
На сайте с 08.08.2011
Offline
84
#9

Переезжаю с движка http://ru.melbis.com на движок cs cart.

site.ru в адресной строке заменил домен, чтобы не светить :)

Переадресация нужна для того, чтобы перенаправлять клиентов из поиска из старого адреса на новый. Ведь в течении нескольких месяцев у поисковиков будут адреса с "dir", а мне нужно чтобы клиент получил не 404 ошибку, а его перекинуло на новую страницу.

Вот я сейчас и хочу все подготовить к переезду и только потом все поменять....

Если я правильно понимаю, то при попытке открыть страницу http://site.ru/DIR_razdel.htm на нынешнем движке (melbis.com) с правильно прописанным 301 редиректом должна открыться страница с УРЛ - http://site.ru/razdel.htm и появится 404 ошибка, так как такой страницы не существует на этом движке...

Но почему то страница http://site.ru/razdel.htm не открывается... А вместо этого я на странице http://site.ru/DIR_razdel.htm получаю ошибку...

Без вот этих правил

RewriteRule ^dir_(.+).htm$ dir.php?psu=$1 [L,QSA]
RewriteRule ^goods_(.+).htm$ goods.php?psu=$1 [L,QSA]
RewriteRule ^descr_(.+).htm$ descr.php?psu=$1 [L,QSA]

страницы на сайте вообще не открываются... Сразу ошибка.

obius
На сайте с 19.08.2015
Offline
56
#10

realmen80, отправьте в ЛС ссылку на сайт и дефолтный .htaccess от cs cart

12

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