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

Откуда берутся эти url в карте сайта


Recommended Posts

Делаю карту сайта этим генератором http://wonderwebware.com/sitemap-generator/ .Мало того что полно всякой мути типа дубля главной http://мой сайт/index.php?route=common/home, но еще при добавлении новых товаров стали появляться страницы типа http://мой сайт/index.php?route=product/search&keyword=Protherm скат 9к и http://мой сайт/index.php?route=checkout/cart&product_id=52 то есть на все любые вводимые товары еще эти две. Подскажите можно ли от этого избавится. С Уважением! Если есть желание посмотреть сайт http://www.protherm-rus.ru/

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


в robots.txt

добавляете

Disallow: /*route=account/login

Disallow: /*route=checkout/cart

Disallow: /*route=product/search

Disallow: /admin

Disallow: /catalog

Disallow: /download

Disallow: /export

Disallow: /system

Все это добавлено, яндекс сначала это загружает , а потом получается так . Допустим 160 загружено , 40 в индексе, 120 запрещено фаилом robots. Если сайт доделать полностью , то все увеличится в геометрической прогрессии. Чего не хотелось бы.
Надіслати
Поділитися на інших сайтах


Если не понимаеш как работают сторонние генераторы лучше не трогай их.

Прикрепляю исправленный google_sitemap, используй его.

google_sitemap.zip

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

Спасибо, Yesvik!

Есть замечание по файлу. Каталоги и товары генерирует замечательно, но совсем не генерирует страницы новостей, контакты, прайс (ссылка есть в модуле "Информация" и в хедере). Сразу оговорюсь, что все эти ссылки в ЧПУ не генерируются, почему-то. Мне это не принципиально, т.к. дублей этих страниц нет, но они и в карту сайта не попадают, котрую формирует выше выложенный файл.

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


Спасибо, Yesvik!

Есть замечание по файлу. Каталоги и товары генерирует замечательно, но совсем не генерирует страницы новостей, контакты, прайс (ссылка есть в модуле "Информация" и в хедере). Сразу оговорюсь, что все эти ссылки в ЧПУ не генерируются, почему-то. Мне это не принципиально, т.к. дублей этих страниц нет, но они и в карту сайта не попадают, котрую формирует выше выложенный файл.

Новости и прайс это дополнительные модули о которых генератор ничего не знает и ему надо растолковать что откуда брать, а контакты вообще не нужны в карте...
  • +1 1
Надіслати
Поділитися на інших сайтах

Если не понимаеш как работают сторонние генераторы лучше не трогай их.

Прикрепляю исправленный google_sitemap, используй его.

В отличии от Вашего в моём есть добавленный текст (выделен красным).

Это на что-то повлияет, оставить или удалить ?

1 <?php

2 class ControllerFeedGoogleSitemap extends Controller {

3 public function index() {

4 if ($this->config->get('google_sitemap_status')) {

5 $output = '<?xml version="1.0" encoding="UTF-8"?>';

6 $output .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

7

8 $this->load->model('tool/seo_url');

9

10 $this->load->model('catalog/product');

11

12 $products = $this->model_catalog_product->getProducts();

13

14 foreach ($products as $product) {

15 $output .= '<url>';

16 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $product['product_id'])) . '</loc>';

17 $output .= '<changefreq>weekly</changefreq>';

18 $output .= '<priority>1.0</priority>';

19 $output .= '</url>';

20 }

21

22 $this->load->model('catalog/category');

23

24 $categories = $this->model_catalog_category->getCategories();

25

26 $output .= $this->getCategories(0);

27

28 $this->load->model('catalog/manufacturer');

29

30 $manufacturers = $this->model_catalog_manufacturer->getManufacturers();

31

32 foreach ($manufacturers as $manufacturer) {

33 $output .= '<url>';

34 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/manufacturer&manufacturer_id=' . $manufacturer['manufacturer_id'])) . '</loc>';

35 $output .= '<changefreq>weekly</changefreq>';

36 $output .= '<priority>0.7</priority>';

37 $output .= '</url>';

38

39 $products = $this->model_catalog_product->getProductsByManufacturerId($manufacturer['manufacturer_id']);

40

41 foreach ($products as $product) {

42 $output .= '<url>';

43 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&manufacturer_id=' . $manufacturer['manufacturer_id'] . '&product_id=' . $product['product_id'])) . '</loc>';

44 $output .= '<changefreq>weekly</changefreq>';

45 $output .= '<priority>1.0</priority>';

46 $output .= '</url>';

47 }

48 }

49

50 $this->load->model('catalog/information');

51

52 $informations = $this->model_catalog_information->getInformations();

53

54 foreach ($informations as $information) {

55 $output .= '<url>';

56 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=information/information&information_id=' . $information['information_id'])) . '</loc>';

57 $output .= '<changefreq>weekly</changefreq>';

58 $output .= '<priority>0.5</priority>';

59 $output .= '</url>';

60 }

61

62 $output .= '</urlset>';

63

64 $this->response->addHeader('Content-Type: application/xml');

65 $this->response->setOutput($output);

66 }

67 }

68

69 protected function getCategories($parent_id, $current_path = '') {

70 $output = '';

71

72 $results = $this->model_catalog_category->getCategories($parent_id);

73

74 foreach ($results as $result) {

75 if (!$current_path) {

76 $new_path = $result['category_id'];

77 } else {

78 $new_path = $current_path . '_' . $result['category_id'];

79 }

80

81 $output .= '<url>';

82 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)) . '</loc>';

83 $output .= '<changefreq>weekly</changefreq>';

84 $output .= '<priority>0.7</priority>';

85 $output .= '</url>';

86

87 $products = $this->model_catalog_product->getProductsByCategoryId($result['category_id']);

88

89 foreach ($products as $product) {

90 $output .= '<url>';

91 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $new_path . '&product_id=' . $product['product_id'])) . '</loc>';

92 $output .= '<changefreq>weekly</changefreq>';

93 $output .= '<priority>1.0</priority>';

94 $output .= '</url>';

95 }

96

97 $output .= $this->getCategories($result['category_id'], $new_path);

98 }

99

100 return $output;

101 }

102 }

103 ?>

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


В отличии от Вашего в моём есть добавленный текст (выделен красным).

Это на что-то повлияет, оставить или удалить ?

Удали, это повторный вывод ссылок на страницы товаров.
  • +1 1
Надіслати
Поділитися на інших сайтах

Чтобы в сайтмэп присутствовали ссылки на новости надо перед строкой

$output .= '</urlset>';
добавить

$this->load->model('catalog/news');
		 
$news = $this->model_catalog_news->getNews();
		 
foreach ($news as $item) {
	$output .= '<url>';
	$output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=information/news&news_id=' . $item['news_id'])) . '</loc>';
	$output .= '<changefreq>weekly</changefreq>';
	$output .= '<priority>0.5</priority>';
	$output .= '</url>';   
}

А для того что-бы формировалось ЧПУ надо сделать правки в seo_url.php, об этом написано в инструкции к модулю.

Про модуль прайс ничего не скажу, он не попадался мне на глаза...

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

Удали, это повторный вывод ссылок на страницы товаров.

Одного подлечил! Большое спасибо! Но тут ещё один пациент на пороге не посмотрите ?

Фамилия google_base.php

<?php
class ControllerFeedGoogleBase extends Controller {
public function index() {
	if ($this->config->get('google_base_status')) {
		$output  = '<?xml version="1.0" encoding="UTF-8" ?>';
		$output .= '<rss version="2.0" xmlns:g="http-~~-//base.google.com/ns/1.0">';
           $output .= '<channel>';
		$output .= '<title>' . $this->config->get('config_name') . '</title>';
		$output .= '<description>' . $this->config->get('config_meta_description') . '</description>';
		$output .= '<link>' . HTTP_SERVER . '</link>';

		$this->load->model('catalog/category');

		$this->load->model('catalog/product');

		$this->load->model('tool/image');

		$products = $this->model_catalog_product->getProducts();

		foreach ($products as $product) {
			if ($product['description']) {
				$output .= '<item>';
				$output .= '<title>' . html_entity_decode($product['name'], ENT_QUOTES, 'UTF-8') . '</title>';
				$output .= '<link>' . HTTP_SERVER . 'index.php?route=product/product&product_id=' . $product['product_id'] . '</link>';
				$output .= '<description>' . $product['description'] . '</description>';
				$output .= '<g:brand>' . html_entity_decode($product['manufacturer'], ENT_QUOTES, 'UTF-8') . '</g:brand>';
				$output .= '<g:condition>new</g:condition>';
				$output .= '<g:id>' . $product['product_id'] . '</g:id>';

				if ($product['image']) {
					$output .= '<g:image_link>' . $this->model_tool_image->resize($product['image'], 500, 500) . '</g:image_link>';
				} else {
					$output .= '<g:image_link>' . $this->model_tool_image->resize('no_image.jpg', 500, 500) . '</g:image_link>';
				}

				$output .= '<g:mpn>' . $product['model'] . '</g:mpn>';

				$special = $this->model_catalog_product->getProductSpecial($product['product_id']);

				$supported_currencies = array ('USD', 'EUR', 'GBP');

                   if (in_array($this->currency->getCode(), $supported_currencies)) {
                       $currency = $this->currency->getCode();
                   } else {
                       $currency = ($this->config->get('google_base_status')) ? $this->config->get('google_base_status') : 'USD';
                   }

                   if ($special) {
                       $output .= '<g:price>' .  $this->currency->format($this->tax->calculate($special, $product['tax_class_id']), $currency, FALSE, FALSE) . '</g:price>';
                   } else {
                       $output .= '<g:price>' . $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id']), $currency, FALSE, FALSE) . '</g:price>';
                   }

				$categories = $this->model_catalog_product->getCategories($product['product_id']);

				foreach ($categories as $category) {
					$path = $this->getPath($category['category_id']);

					if ($path) {
						$string = '';

						foreach (explode('_', $path) as $path_id) {
							$category_info = $this->model_catalog_category->getCategory($path_id);

							if ($category_info) {
								if (!$string) {
									$string = $category_info['name'];
								} else {
									$string .= ' > ' . $category_info['name'];
								}
							}
						}

						$output .= '<g:product_type>' . $string . '</g:product_type>';
					}
				}

				$output .= '<g:quantity>' . $product['quantity'] . '</g:quantity>';
				$output .= '<g:upc>' . $product['model'] . '</g:upc>';
				$output .= '<g:weight>' . $this->weight->format($product['weight'], $product['weight_class']) . '</g:weight>';
				$output .= '</item>';
			}
		}

		$output .= '</channel>';
		$output .= '</rss>';

		$this->response->addHeader('Content-Type: application/rss+xml');
		$this->response->setOutput($output, 0);
	}
}

protected function getPath($parent_id, $current_path = '') {
	$category_info = $this->model_catalog_category->getCategory($parent_id);

	if ($category_info) {
		if (!$current_path) {
			$new_path = $category_info['category_id'];
		} else {
			$new_path = $category_info['category_id'] . '_' . $current_path;
		}

		$path = $this->getPath($category_info['parent_id'], $new_path);

		if ($path) {
			return $path;
		} else {
			return $new_path;
		}
	}
}
}
?>

Лечение требуется ?

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


Если используется https://opencartforum.com/files/file/49-w-pricelist/ и надо ссылку на прайслист добавить в сайтмэп

перед строкой

$output .= '</urlset>';
добавить

$output .= '<url>';
$output .= '<loc>' . HTTP_SERVER . 'index.php?route=common/wpricelist</loc>';
$output .= '<changefreq>weekly</changefreq>';
$output .= '<priority>0.5</priority>';
$output .= '</url>';   
  • +1 3
Надіслати
Поділитися на інших сайтах

Если не понимаеш как работают сторонние генераторы лучше не трогай их.

Прикрепляю исправленный google_sitemap, используй его.

А как тогда сообщить поисковику, допустим яндексу о местоположении карты. Ту созданную я заливал в корень и в роботсе указывал путь. Спасибо
Надіслати
Поділитися на інших сайтах


А как тогда сообщить поисковику, допустим яндексу о местоположении карты. Ту созданную я заливал в корень и в роботсе указывал путь. Спасибо

Так же...

Заходиш в админке Дополнения -> Каналы товаров, устанавливаеш Google Sitemap, заходиш в настройки Google Sitemap, выставляеш Статус: Включено, а чуть ниже увидиш Адрес который и надо скармливать поисковикам.

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

Отлично модуль News page снова в строю, но маленькая загвоздка по seo_url. В приложенной инструкции к нему говорится об изменении контроллера catalog/controller/common/seo_url.php, а именно такие инструкции. Добавьте после строк:

if ($url[0] == 'information_id') {
	$this->request->get['information_id'] = $url[1];
}

эти строки

if ($url[0] == 'news_id') {
	$this->request->get['news_id'] = $url[1];
}

И вставьте до } в блоке:

if (isset($this->request->get['product_id'])) {
	$this->request->get['route'] = 'product/product';
} elseif (isset($this->request->get['path'])) {
	$this->request->get['route'] = 'product/category';
} elseif (isset($this->request->get['manufacturer_id'])) {
	$this->request->get['route'] = 'product/manufacturer';
} elseif (isset($this->request->get['information_id'])) {
	$this->request->get['route'] = 'information/information';
}

строку

} elseif (isset($this->request->get['news_id'])) {
	$this->request->get['route'] = 'information/news';

Да и в файлике catalog/model/tool/seo_url.php вы не найдет строчку:

if (($key == 'product_id') || ($key == 'manufacturer_id') || ($key == 'information_id') || ($key == 'news_id')) {

в которую надо бы добавить условие || ($key == 'news_id')

Но в текущем уже seo_url таких строк к сожалению нет. Возникает известный русский вопрос что делать Изображение .

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


  • 2 weeks later...

Если не понимаеш как работают сторонние генераторы лучше не трогай их.

Прикрепляю исправленный google_sitemap, используй его.

Сюда изменения внёс:

/catalog/controller/feed/google_base.php

/catalog/controller/feed/google_sitemap.php

а сюда:

/admin/controller/feed/google_base.php

/admin/controller/feed/google_sitemap.php

изменения нужны какие нибудь?

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


В Админ ----> Главная :: Каналы товаров :: Google Sitemap

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

Вопрос: так и задумано или это только у меня ?

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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