301 редирект и mod_rewrite

12
bahus
На сайте с 13.01.2008
Offline
51
1049

Есть сайт, сменили cms, нужно сделать 301 редирект со старых урлов (в примере /cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html) на новый (в примере /katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44)

есть код htaccess:

Redirect 301 /cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html http://site.ru/katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44

#куча подобных строк

RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ index.php?page=$1 [QSA]

При заходе по старому урлу создает такой:

site.ru/katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44?page=cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html

Т.е. приплюсовывет ?page=старый урл

Если убрать qsa - то открывается ок, без 404, но урл все равно такой, что не есть гут, т.к. получаются дублированные страницы.

Как быть?

SeoPunk.Ru (http://seopunk.ru) - ХоумПага PivanoFF.Ru (http://pivanoff.ru) - ХоумПага намба ту FixBlog.Ru (http://fixblog.ru) - Полезности веб-мастерам
kdv12
На сайте с 05.12.2011
Offline
52
#1
bahus:
Есть сайт, сменили cms, нужно сделать 301 редирект со старых урлов (в примере /cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html) на новый (в примере /katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44)

есть код htaccess:

Redirect 301 /cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html http://site.ru/katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44
#куча подобных строк

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

При заходе по старому урлу создает такой:
site.ru/katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44?page=cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html
Т.е. приплюсовывет ?page=старый урл
Если убрать qsa - то открывается ок, без 404, но урл все равно такой, что не есть гут, т.к. получаются дублированные страницы.

Как быть?

Попробуй так


RewriteRule ^cat\/(.*)\/([0-9]+)\-(.*)\.html /katalog/$1/$3 [L]
Разработка сайтов любой сложности на 1С-Битрикс. Бесплатные консультации.
siv1987
На сайте с 02.04.2009
Offline
427
#2

Значит Redirect 301 убрать

Ниже RewriteBase /

Добавить

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.+)\.html$ /$1? [R=301,L]

maldivec
На сайте с 04.11.2008
Offline
160
#3

siv1987, kdv12, а то что старые урлы отличаются не только окончанием ".html" и каталогом "cat" вас не смутило? :)

bahus
На сайте с 13.01.2008
Offline
51
#4

Не, то что там более-менее имена совпали - это случайность.

Да и даже если жестко прописывать урл в RewriteRule и ставить флаг R=301 - не помогает :(

siv1987
На сайте с 02.04.2009
Offline
427
#5
maldivec:
siv1987, kdv12, а то что старые урлы отличаются не только окончанием ".html" и каталогом "cat" вас не смутило?

Может я невнимательно пост прочел, а где там другие окончания кроме .html на старом урле?

bahus
На сайте с 13.01.2008
Offline
51
#6
siv1987:
Может я невнимательно пост прочел, а где там другие окончания кроме .html на старом урле?

Там кроме префикса /cat/ и суффикса .html еще и корень отличается

siv1987
На сайте с 02.04.2009
Offline
427
#7
bahus:
Там кроме префикса

Там то что я написал. Пробовали именно как я привел? Работает? Нет - что показывает?

bahus
На сайте с 13.01.2008
Offline
51
#8
siv1987:
Там то что я написал. Пробовали именно как я привел? Работает? Нет - что показывает?

Ну да, не работает

Убирает из адреса .html и 404

Как раз то, что вы и написали :)

siv1987
На сайте с 02.04.2009
Offline
427
#9

Ну так приведите нормальный шаблон по которому надо редериктеть, я не собираюсь здесь гадать. Вы написали .html вам сделал на без.

bahus
На сайте с 13.01.2008
Offline
51
#10
siv1987:
Ну так приведите нормальный шаблон по которому надо редериктеть, я не собираюсь здесь гадать. Вы написали .html вам сделал на без.

Я написал что мне нужно заредиректить со страницы

/cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html

на страницу

/katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44

Все страницы прописываю жестко. Пишу:

Redirect 301 /cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html http://site.ru/katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44

Получаю

site.ru/katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44?page=cat/avtobetononasos/13-avtobetononasos-zoomlion-zlj53945thb125-44.html

А нужно получить тоже самое, но без ?page=....

site.ru/katalog/avtobetononasosy/avtobetononasos-zoomlion-zlj5394-5thb125-44

12

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