Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Переадресация 8000 ссылок


Recommended Posts

Здравствуйте. Нужна помощь.

Есть 8000 проиндексированых страниц товаров.

Необходима переадресация: site/tovar-old на site/kategoria/podkategoria/tovar.html (при том что названия товаров, до и после, синтаксически разные, и в наследственном урле добавлен .html)

Вижу решение только в написании к каждому товару правила, но выдержит ли сервер постоянную обработку 8000 строк в .htaccess? и разумно ли это?

Может как вариант, на некоторые важные страницы "построчный" редирект, а все остальные правилом переадресовать на главную?

В таком случае, подскажите как правильно организовать "построчный" редирект, поскольку с правилами в .htaccess:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

при Redirect 301 /tovar-old http://site/kategori...oria/tovar.html в конец урла подставляется ?_route_=tovar-old и в результате "страница не найдена"

Второй вариант. При добавлении правила

RewriteCond %{QUERY_STRING} ^_route_=tovar-old$

RewriteRule ^(.*)$ http://site/kategori...ria/tovar.html? [R=301,L]

редирект работает, но такая схема трудоемка (много ручной работы)

Что посоветуете господа?

Надіслати
Поділитися на інших сайтах


Может на самые весомые страницы сделать построчный редирект, а по остальным товарам отправлять на главную?

Тогда как правильно написать правило для перенаправления на главную, если старые страницы были сайт/бренд_модель-товара, например так: site/nokia_Asha300 ?

Надіслати
Поділитися на інших сайтах


Мужики! помогите перенаправить старые страницы, примерно такого вида http://site.com/nokia_Asha300 на http://site.com/

перепробовал многие правила - не получается...

Надіслати
Поділитися на інших сайтах


Может проще Ваши усилия перекинуть на раскрутку нового магазина? А на старом - с любой страницы перенаправление на новый сайт.

Надіслати
Поділитися на інших сайтах

Правильно говорите, но проблема как сделать

... с любой страницы перенаправление на новый сайт.

при том, что должно быть так: http://site.com/nokia_Asha300'>http://site.com/nokia_Asha300 на http://site.com/

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

Надіслати
Поділитися на інших сайтах


Valdos, гугл в помощь

Аналогичный синтаксис для переадресации сайта:

RedirectPermanent / http://www.you.com/

Пример переадресации каталога:

RedirectPermanent /old-directory http://www.domain.com/new-directory/

Например, зашедших в test переадресуем на www.test.com, остальных на enter.test.com (порядок следования записей важен):

Redirect permanent /test http://www.test.com/

Redirect permanent / http://enter.test.com/

Пропишите чпу для каждой категории верхнего уровня и перенаправляйте их на нужную категорию (у которой тоже вбито своё чпу) на новом сайте. Либо просто все страницы старого сайта на главную страницу нового сайта или на страницу с объяснениями (типа, мы переехали на новый сайт и дальше бла-бла-бла...Покупайте на новом сайте )

  • +1 1
Надіслати
Поділитися на інших сайтах

JohnnyVega

Спасибо за советы, но они по большому не относятся к моей ситуации. Переадресовать каталоги - это да, не проблема.

Но отловить проиндексированые старые страницы товаров формата httр://site.com/nokia_Asha300 и перенаправить их - это оказалось проблема.

freelancer

Есть такая таблица соответствий tovar-old -> tovar

Но построчно перенаправить все страницы товаров средствами .htaccess не получилось - уперся в ограничение настроек апача. С 8000 только 2000 смог прописать, далее ограничения и ошибка 500

Надіслати
Поділитися на інших сайтах


Благодарен за скрипт, но не совсем понятно что делать с ним. Вставка в индексную страницу дает ошибку Fatal error: Using $this when not in object context in /путь/index.php

Надіслати
Поділитися на інших сайтах


Благодарен за скрипт, но не совсем понятно что делать с ним. Вставка в индексную страницу дает ошибку Fatal error: Using $this when not in object context in /путь/index.php

=)

это не пример рабочего кода. вы лучше скажите как пробовали и что получилось..

Надіслати
Поділитися на інших сайтах

1. Пробовал средствами апача

Redirect 301 /nokia_Asha300 http://site/kat/telefon-nokia-Asha-300.html
но в конец урла подставляется ?_route_=nokia_Asha300 и в результате "страница не найдена"

2. Получилось перенаправить каждый товар нижеописаным кодом, но не более 25% всех товаров - далее ошибка.

RewriteCond %{QUERY_STRING} ^_route_=nokia_Asha300$
RewriteRule ^(.*)$ http://site/kat/telefon-nokia-Asha-300.html? [R=301,L]

3. Пробовал закрыть вышеуказаную схему общим редиректом для оставшихся страниц на главную, но не смог найти/написать работающее правило.

Надіслати
Поділитися на інших сайтах


на старом сайте вам нужна своя реализация seo модуля как seo pro например. там по _route_ делать редирект. пример я привел выше

сайт остается тот же, просто сделали ап с 1.4 на 1.5 и поменялся синтаксис написания урл
Надіслати
Поділитися на інших сайтах


сайт остается тот же, просто сделали ап с 1.4 на 1.5 и поменялся синтаксис написания урл

хотя работает.. если прописать в сео модуле

$links - таблица соответствий

$links = array('test1'=>'test2');
        if (isset($this->request->get['_route_']) && isset($links[$this->request->get['_route_']])){
            $this->response->redirect($this->config->get('config_url') . $links[$this->request->get['_route_']]);
        }

  • +1 1
Надіслати
Поділитися на інших сайтах

Ну у меня не такие обширные знание движка, можно поподробней?

1. Как создать $links - таблицу соответствий , есть у меня обычная таблица соответствия старых и новых урл, в каком виде и куда надо это все запихнуть? мне так кажется что отдельным файлом и потом куда то подключить его...

2. Куда именно вставить вами указаный код?

Надіслати
Поділитися на інших сайтах


Ну у меня не такие обширные знание движка, можно поподробней?

1. Как создать $links - таблицу соответствий , есть у меня обычная таблица соответствия старых и новых урл, в каком виде и куда надо это все запихнуть? мне так кажется что отдельным файлом и потом куда то подключить его...

2. Куда именно вставить вами указаный код?

я ж написал пример

$links = array('test1'=>'test2', 'link_old' => 'link_new', ...);
код добавить после

public function index() {
  • +1 1
Надіслати
Поділитися на інших сайтах

))) работает. спасибо большое!!! только как еще в этой конструкции указать 301 редирект?

$links = array('link_old' => 'link_new', 'link_old' => 'link_new', ...);
		if (isset($this->request->get['_route_']) && isset($links[$this->request->get['_route_']])){
		$this->response->redirect($this->config->get('config_url') . $links[$this->request->get['_route_']]);
		}
Надіслати
Поділитися на інших сайтах


freelancer, возможно ли в этой конструкции указать 301 редирект? поскольку отдает 302 а в действительности нужно 301.

$links = array('link_old' => 'link_new', 'link_old' => 'link_new', ...);
		if (isset($this->request->get['_route_']) && isset($links[$this->request->get['_route_']])){
		$this->response->redirect($this->config->get('config_url') . $links[$this->request->get['_route_']]);
		}
Надіслати
Поділитися на інших сайтах


Спасибо за совет.

но показывает ошибку в строке

header( "Location: ". $this->config->get('config_url') . $links[$this->request->get['_route_']]);

пробовал еще так

header( "Location: $this->config->get('config_url') . $links[$this->request->get['_route_']]");

все равно ошибка

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.