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

Редирект 301 на категорию, если товара нет


Recommended Posts

Добрый день.

Нужно что бы при переходе на товары которых нет в наличии срабатывал 301 редирект на страницу категории, в которой находится данный товар.

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


2 минуты назад, Valery332 сказал:

Добрый день.

Нужно что бы при переходе на товары которых нет в наличии срабатывал 301 редирект на страницу категории, в которой находится данный товар.

А если категорий несколько к которым привязан товар?

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

1 година назад, bogdan281989 сказав:

А если категорий несколько к которым привязан товар?

main_category

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

1 час назад, bogdan281989 сказал:

А если категорий несколько к которым привязан товар?

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

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


Для ocstore 2.3 метод для модели (взят с админки)

public function getProductMainCategoryId($product_id) {
		$query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "' AND main_category = '1' LIMIT 1");

		return ($query->num_rows ? (int)$query->row['category_id'] : 0);
}

 

Далее в контроллере товара вызываем, получаем, редиректим

$main_category_id = $this->model_catalog_product->getProductMainCategoryId($this->request->get['product_id']);
			
if($product_info['quantity'] <= 0 && $main_category_id) {				
	$url_redirect = $this->url->link('product/category', 'path=' . $main_category_id);
				
	$this->response->redirect($url_redirect, 301);
}

 

Только вот зачем вам это нужно? С точки зрения сео, это наверное очень плохие движения

Я не проверял, но схема приблизительно такая

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

35 минут назад, Valery332 сказал:

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

а когда товар появится то ваш редирект останется пока юсер кеш в браузере не почистит. Если товар может появиться и редирект временное решение то тогда уж 302

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

3 минуты назад, Venter сказал:

а когда товар появится то ваш редирект останется пока юсер кеш в браузере не почистит. Если товар может появиться и редирект временное решение то тогда уж 302

Да, я это и написал, что это как мне решение не очень.

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

1 час назад, bogdan281989 сказал:

Для ocstore 2.3 метод для модели (взят с админки)


public function getProductMainCategoryId($product_id) {
		$query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "' AND main_category = '1' LIMIT 1");

		return ($query->num_rows ? (int)$query->row['category_id'] : 0);
}

 

Далее в контроллере товара вызываем, получаем, редиректим


$main_category_id = $this->model_catalog_product->getProductMainCategoryId($this->request->get['product_id']);
			
if($product_info['quantity'] <= 0 && $main_category_id) {				
	$url_redirect = $this->url->link('product/category', 'path=' . $main_category_id);
				
	$this->response->redirect($url_redirect, 301);
}

 

Только вот зачем вам это нужно? С точки зрения сео, это наверное очень плохие движения

Я не проверял, но схема приблизительно такая

Спасибо, работает. Это сами СЕОшники и придумали)

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


1 минуту назад, Valery332 сказал:

Спасибо, работает. Это сами СЕОшники и придумали)

Наверное СЕОшники Шульги :grin:

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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