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

sitemap.xml и seo_pro ocStore 2.3.0.2


Recommended Posts

В версии ocStore 2.3.0.2 если включен seo_pro, при запросе sitemap.xml кидает на index.php?route=extension/feed/google_sitemap

сравнив код  seo_pro от предыдущей версии, заметил что нет проверки в методе validate

if (ltrim($this->request->server['REQUEST_URI'], '/') == 'sitemap.xml') {
  $this->request->get['route'] = 'extension/feed/google_sitemap';
  return;
}

Добавлением этих строк и лечится

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


впрочем, вероятно это было исключено не зря

 

при включении этого в seopro по ссылке sitemap.xml будет автоматом генериться новый сайтмап из фида

что приводит к проблемам, если автоматическая генерация не нужна

 

например - в случае размещения предварительно созданного статического файла sitemap.xml в корне

 

по-крайней мере, использовал именно такой способ для снижения нагрузки в свое время

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

в .htaccess - убирается добавлением одного комментирующего символа в начало строки

 

можно, конечно, пойти дальше и добавить в seopro возможность выбора фидов через интерфейс

типа чекбокс и строка с адресом фида

только нужно ли?

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

  • 10 months later...
  В 17.12.2016 в 17:17, thentru сказав:

В версии ocStore 2.3.0.2 если включен seo_pro, при запросе sitemap.xml кидает на index.php?route=extension/feed/google_sitemap

сравнив код  seo_pro от предыдущей версии, заметил что нет проверки в методе validate

if (ltrim($this->request->server['REQUEST_URI'], '/') == 'sitemap.xml') {
  $this->request->get['route'] = 'extension/feed/google_sitemap';
  return;
}

Добавлением этих строк и лечится

Expand  

 

Здравствуйте, подскажите пожалуйста, правильно выполнил? Добавил строки сюда

 

    public function validate() {
        if (!$this->validatePermission()) {
            $this->error['warning'] = $this->language->get('error_permission');
        }
         return !$this->error;

if (ltrim($this->request->server['REQUEST_URI'], '/') == 'sitemap.xml') {
  $this->request->get['route'] = 'extension/feed/yandex_feed';
  return;

}
}

добавил строки в файл admin/controller/octeam_tools

 

в файле .htacess

RewriteRule ^sitemap.xml$ index.php?route=extension/feed/yandex_feed [L]

но при переходе на sitemap.xml все равно меняется конечный урл на /index.php?route=extension/feed/yandex_feed

 

Помогите пожалуйста, что делаю не так?

 

 

добавлено позже: полез в файл админки, а не надо было.

Змінено користувачем Guava
Надіслати
Поділитися на інших сайтах


@Guava править нужно файл /catalog/controller/startup/seo_pro.php

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


  В 13.11.2017 в 16:52, thentru сказав:

@Guava править нужно файл /catalog/controller/startup/seo_pro.php

Expand  

здравствуйте, спасибо, сработало, я ошибочно полез в файлы админки.

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


  • 4 weeks later...

Уважаемые, профи...Помогите разобраться немного в этом вопросе новичку, пытаюсь разобраться, но много чего непонятного.

На примере ocStore 2.3.0.2.3.

 

Путь к карте сайта имеет вид

http://www.site.ru/index.php?route=extension/feed/google_sitemap

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

http://www./site.ru/sitemap.xml

Вы привели в пример следующий код

  В 12.11.2017 в 19:28, Guava сказав:

public function validate() { if (!$this->validatePermission()) { $this->error['warning'] = $this->language->get('error_permission'); } return !$this->error; if (ltrim($this->request->server['REQUEST_URI'], '/') == 'sitemap.xml') { $this->request->get['route'] = 'extension/feed/yandex_feed'; return; } }

Expand  

, который нужно добавить в файле  seo_pro.php /catalog/controller/startup/seo_pro.php

Изначально строчка public function validate() в этом файле отсутствует.

В этом случае, нужно самому внести в любом месте файла seo_pro.php эту функцию validate() ?

 

Второй вопрос. Как понять, что карта сайта заработала ? Это происходит после индексации роботами или что-то должно быть видно юзеру после установки системы и запроса http://www./site.ru/sitemap.xml.

Когда я в строке браузера ввожу http://www.site.ru/index.php?route=extension/feed/google_sitemap, показывает белый экран.

 

 

 

 

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


  В 09.12.2017 в 16:59, Vitulus сказав:

Второй вопрос. Как понять, что карта сайта заработала ? Это происходит после индексации роботами или что-то должно быть видно юзеру после установки системы и запроса http://www./site.ru/sitemap.xml.

Когда я в строке браузера ввожу http://www.site.ru/index.php?route=extension/feed/google_sitemap, показывает белый экран.

Expand  

   С этим моментом разобрался.

   Но вот при вводе http://www.****доемн/sitemap.xml всё равно перенаправляет на строку вида index.php?route=extension/feed/google_sitemap :(

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


в сеопро в методе validate добавить исключение

		if (ltrim($this->request->server['REQUEST_URI'], '/') == 'sitemap.xml') {
			$this->request->get['route'] = 'extension/feed/google_sitemap_fast';
			return;
		}

И это было в первом посте

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

  В 09.12.2017 в 19:19, chukcha сказав:

И это было в первом посте

Expand  

 

В том-то и дело, что я всё внимательно прочитал, но, где находится этот метод validate в самом файле seo_pro.php ?

   Я не коддер, но пытаюсь разобраться читая пояснения, но порой они общего характера.

    

Через редактор, я нахожу только один блок, где, встречается слово validate

 

private function validate () {
        if (isset($this->request->get['route']) && $this->request->get['route'] == 'error/not_found') {
            return;
        }
        if(empty($this->request->get['route'])) {
            $this->request->get['route'] = 'common/home';
        }

        if (isset($this->request->server['HTTP_X_REQUESTED_WITH']) && strtolower($this->request->server['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
            return;
        }

        if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
            $config_ssl = substr($this->config->get('config_ssl'), 0, $this->strpos_offset('/', $this->config->get('config_ssl'), 3) + 1);
            $url = str_replace('&', '&', $config_ssl . ltrim($this->request->server['REQUEST_URI'], '/'));
            $seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), true));
        } else {
            $config_url = substr($this->config->get('config_url'), 0, $this->strpos_offset('/', $this->config->get('config_url'), 3) + 1);
            $url = str_replace('&', '&', $config_url . ltrim($this->request->server['REQUEST_URI'], '/'));
            $seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), false));
        }

        if (rawurldecode($url) != rawurldecode($seo) && isset($this->request->server['SERVER_PROTOCOL'])) {
            header($this->request->server['SERVER_PROTOCOL'] . ' 301 Moved Permanently');

            $this->response->redirect($seo, 301);
        }
    }

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


       private function validate() {
                if (isset($this->request->get['route']) && $this->request->get['route'] == 'error/not_found') {
                        return;
                }
                if (ltrim($this->request->server['REQUEST_URI'], '/') =='sitemap.xml') {
                        $this->request->get['route'] = 'extension/feed/yandex_feed';
                        return;
                }
                        if (ltrim($this->request->server['REQUEST_URI'], '/') =='sitemap_google.xml') {
                        $this->request->get['route'] = 'extension/feed/sitemap_pro';
                        return;
                }

то, что выше правка сео про на catalog/controller/startup/seo_pro.php - это для сайтмапа чтобы выводился по нужной ссылке. Важно понимать что у меня свои пути, под модуль Снастика. Если у вас другой адрес сайтмапа - подкорректируйте под себя.

 

затем делал правку + добавление еще одной строки для сайтмапа под гугл в .htacess 

 

RewriteRule ^sitemap.xml$ index.php?route=extension/feed/yandex_feed [L]
RewriteRule ^sitemap_google.xml$ index.php?route=extension/feed/sitemap_pro [L]

и я кстати не знаю точно, но вроде карта и так работает, просто мне так было удобнее, а более важные задачи по магазину просто были приостановлены по некоторым причинам. Вот и решил заняться мелочами на тот момент.
@Vitulus 

 

  В 09.12.2017 в 16:59, Vitulus сказав:

Второй вопрос. Как понять, что карта сайта заработала ? Это происходит после индексации роботами или что-то должно быть видно юзеру после установки системы и запроса http://www./site.ru/sitemap.xml.

Когда я в строке браузера ввожу http://www.site.ru/index.php?route=extension/feed/google_sitemap, показывает белый экран.

Expand  

 

сколько у вас товаров? может он генерируется долго или стандартный.

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


  В 09.12.2017 в 21:36, Guava сказав:

то, что выше правка сео про на catalog/controller/startup/seo_pro.php - это для сайтмапа чтобы выводился по нужной ссылке.

Expand  

   сегодня просто остался без сил :wacko:, завтра обязательно Ваш код попробую вставить в . Спасибо, что отозвались и что-то предметное написали.

  В 09.12.2017 в 21:36, Guava сказав:

то, что выше правка сео про на catalog/controller/startup/seo_pro.php - это для сайтмапа чтобы выводился по нужной ссылке.

Expand  

мне как раз и нужно, чтобы по ссылке выводился "укороченной", без этого хлама index.php?route=

   

  В 09.12.2017 в 21:36, Guava сказав:

и я кстати не знаю точно, но вроде карта и так работает

Expand  

Да, разбираюсь впервые, да работает сразу, но при условии, что в файле robots прописан путь к карте сайта (я просто не знал, что нужно ещё что-то прописывать, поэтому сразу ничего не увидел).

 

  В 09.12.2017 в 21:36, Guava сказав:

Если у вас другой адрес сайтмапа - подкорректируйте под себя.

Expand  

У меня формируется в OCStore стандарный путь к сайтмапу ...http://www.hobbylife.com.ua/index.php?route=extension/feed/google_sitemap

 

   В файле .htaccess только такие строки

 

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

 

   robots.txt в базовой версии вообще хиленький я так понимаю.

  

User-agent: *
Disallow: /*route=account/
Disallow: /*route=affiliate/
Disallow: /*route=checkout/
Disallow: /*route=product/search
Disallow: /index.php?route=product/product*&manufacturer_id=
Disallow: /admin
Disallow: /catalog
Disallow: /system
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?order=
Disallow: /*&order=
Disallow: /*?limit=
Disallow: /*&limit=
Disallow: /*?filter=
Disallow: /*&filter=
Disallow: /*?filter_name=
Disallow: /*&filter_name=
Disallow: /*?filter_sub_category=
Disallow: /*&filter_sub_category=
Disallow: /*?filter_description=
Disallow: /*&filter_description=
Disallow: /*?tracking=
Disallow: /*&tracking=

User-agent: Yandex
Disallow: /*route=account/
Disallow: /*route=affiliate/
Disallow: /*route=checkout/
Disallow: /*route=product/search
Disallow: /index.php?route=product/product*&manufacturer_id=
Disallow: /admin
Disallow: /catalog
Disallow: /system
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?order=
Disallow: /*&order=
Disallow: /*?limit=
Disallow: /*&limit=
Disallow: /*?filter=
Disallow: /*&filter=
Disallow: /*?filter_name=
Disallow: /*&filter_name=
Disallow: /*?filter_sub_category=
Disallow: /*&filter_sub_category=
Disallow: /*?filter_description=
Disallow: /*&filter_description=
Clean-param: tracking

 

         Но что я до конца ещё не понимаю, карта сайта для Гугл воспринимается иначе, чем для Яндекс, получается, что должно быть две карты ?

Посмотрел ролик, там сказано, что ссылку на карту нужно указывать в самом конце текста в файле robots.txt.

 

 

  В 09.12.2017 в 21:36, Guava сказав:

сколько у вас товаров? может он генерируется долго или стандартный.

Expand  

 

Да, генерируется не так быстро, но товаров, немного (планируется до 4-6 тыс.).

 

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


  В 09.12.2017 в 22:29, Vitulus сказав:

  Но что я до конца ещё не понимаю, карта сайта для Гугл воспринимается иначе, чем для Яндекс, получается, что должно быть две карты ?

Посмотрел ролик, там сказано, что ссылку на карту нужно указывать в самом конце текста в файле robots.txt.

Expand  

 

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

 

  В 09.12.2017 в 22:29, Vitulus сказав:

В файле .htaccess только такие строки

Expand  

правильно, в вашем случае тогда изменений делать не надо, они уже есть. Редактируйте только catalog/controller/startup/seo_pro.php 

 

 

  В 09.12.2017 в 22:29, Vitulus сказав:

robots.txt в базовой версии вообще хиленький я так понимаю.

Expand  

нет, нормальный роботс. Почему решили что хиленький? "Нормальный роботс" или "Хиленький роботс" - само по себе неправильное понятие. У всех магазинов свои особенности, не бывает хорошего или плохого роботс.  

Змінено користувачем Guava
Надіслати
Поділитися на інших сайтах


  В 10.12.2017 в 14:59, Guava сказав:

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

Expand  

 

      Вот Вы правильно уловили мою мысль. Я как раз и задал вопрос именно о необходимости создавать две карты, т.е. два разных пути...Потому как прочитал, что карта "google" не воспринимается Яндекс, именно из-за значения image.

         

  В 10.12.2017 в 14:59, Guava сказав:

правильно, в вашем случае тогда изменений делать не надо, они уже есть.

Expand  

 

Почему не надо ? У Вас есть строка в файле .htaccess

RewriteRule ^sitemap.xml$ index.php?route=extension/feed/yandex_feed [L]

а у меня её нет. Т.е. я так понимаю, что это строка для яндекса.

 

  В 10.12.2017 в 14:59, Guava сказав:

нет, нормальный роботс. Почему решили что хиленький?

Expand  

 

Я имел ввиду то, что в роботсе даже не прописан путь к карте. Получается, что он в "базовой" поставке содержит дефект.

Я прочитал, что в конце файла роботс, должно быть прописано таким образом (с учетом своих значений):

Sitemap: https://site.ru/sitemap.xml
Host: https://site.ru

 

 

 

 

 

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


  В 13.12.2017 в 09:07, Vitulus сказав:

а у меня её нет. Т.е. я так понимаю, что это строка для яндекса.

Expand  

вы очень сильно запутались и скорее всего не понимаете сами, зачем это делается.

 

  В 09.12.2017 в 22:29, Vitulus сказав:

У меня формируется в OCStore стандарный путь к сайтмапу ...http://www.hobbylife.com.ua/index.php?route=extension/feed/google_sitemap

Expand  

это вы написали

 

  В 09.12.2017 в 22:29, Vitulus сказав:

RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]

Expand  

эта строка у вас уже есть, это вы написали.

У вас стандартный модуль для сайтмап, а у меня нет (я покупал посильнее, т.к. стандартный виснет при 10 000 товаров) поэтому я вносил изменения.

 

в вашем случае нужно только внести корректировки как указано тут в теме в файле

 catalog/controller/startup/seo_pro.php

 

и сайтмап начнет открывваться по ссылке /sitemap.xml 

(возможно после обновления кеша или сразу, я не помню честно говоря - не подскажу, сразу должно работать или кеш очищать надо)

 

 

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


  В 13.12.2017 в 10:06, Guava сказав:

вы очень сильно запутались и скорее всего не понимаете сами, зачем это делается.

Expand  

   Да, я изначально не смог сделать так, чтобы стандартный путь index.php?route=extension/feed/google_sitemap приобрел такой вид sitemap.xml.

   Но запутался (а точнее не знал) я именно в том, как мне сделать две карты - одну для гугл, а другую для яндекс.

    С гугл (как прописывать) более менее понятно, я имею ввиду тот путь http://www.***/index.php?route=extension/feed/google_sitemap, который формируется из коробки "OCStore".

   Но Вы в своём коде, везде упоминали yandex_feed, поскольку стандарный OCStore формирует путь карты для гугл, но не для Яндекса, я и начал задавать вопрос, а как дополнительно создать ещё карту для Яндекса (чтобы избежать конфликта с image, когда карта начнет индексироваться Яндекс) ?

   

  В 13.12.2017 в 10:06, Guava сказав:

У вас стандартный модуль для сайтмап, а у меня нет (я покупал посильнее, т.к. стандартный виснет при 10 000 товаров) поэтому я вносил изменения.

Expand  

     Поэтому вне зависимости от покупки модуля, получается, что каждому пользователю нужно дорабатывать код и под Яндекс, потому что о нем в файле  .htaccess ни слова.  

  В 13.12.2017 в 10:06, Guava сказав:

У вас стандартный модуль для сайтмап, а у меня нет (я покупал посильнее,

Expand  

  Скажите, пожалуйста, как называется это модуль ?

 

  

 

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


@Vitulus

  Цитата

  Поэтому вне зависимости от покупки модуля, получается, что каждому пользователю нужно дорабатывать код и под Яндекс, потому что о нем в файле  .htaccess ни слова.  

Expand  

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

Я делал ссылку вида Sitemap.xml скорее из соображений удобства + у меня переезд сайта, и хотел исключить по максимуму различающиеся мелочи в оксторе. И так, просто привычнее.

 

ссылка на модуль генерирующий две карты - для гугл и для яндекс отдельно: 

 

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


Спасибо за инструкцию, файл нормально открывается по адресу site/sitemap.xml

Но после подписки в ГВМ выдает Ошибку. см аттач. 

Причем по своей же ссылке "Файл Sitemap: " нормально открывает карту в новой вкладке...

Подскажите, кто встречал и как бороть?? Спасибо!

 

ошибка_sitemap_xml.PNG

Змінено користувачем Andrey777888
Надіслати
Поділитися на інших сайтах


  • 5 months later...

Почему-то по site/sitemap.xml отдает 404. 

Правил seo pro и .htaccess, по полному адресу открывается нормально. 

Кто-то сталкивался с таким? :)

Upd

Странно, сейчас все ок - похоже было какое-то кэширование.

Змінено користувачем ZyXeL
Надіслати
Поділитися на інших сайтах


  • 1 year later...

Подтверждаю то, что писал  ZyXeL.

ocStore 2.3.0.2.3 ,

правил seopro как написано в первом посте , 

htaccess - заккоментировал строчку "#RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]"

еще переименовал /sitemap/ в /html_sitemap/ (через Инструмент управления Seo-Url) , чтобы они не пересекались с sitemap.xml

В результате site/sitemap.xml отдает 404 (запрашиваемая страница не найдена) !!!

И в отличии от предыдущего ZyXeL у меня никакого чуда не происходит и самой собой ОК не становится. 

 

Народ, помогите справиться с этой коварной задачей. А иначе получается, что рабочего решения нет.

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

  В 23.08.2019 в 11:56, mister12 сказав:

Подтверждаю то, что писал  ZyXeL.

ocStore 2.3.0.2.3 ,

правил seopro как написано в первом посте , 

htaccess - заккоментировал строчку "#RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]"

еще переименовал /sitemap/ в /html_sitemap/ (через Инструмент управления Seo-Url) , чтобы они не пересекались с sitemap.xml

В результате site/sitemap.xml отдает 404 (запрашиваемая страница не найдена) !!!

И в отличии от предыдущего ZyXeL у меня никакого чуда не происходит и самой собой ОК не становится. 

 

Народ, помогите справиться с этой коварной задачей. А иначе получается, что рабочего решения нет.

Expand  

 

А вот строчку в htaccess не нужно было комментировать.

И в seo_pro неплохо было бы добавить вот такое: 

 

        if (isset($this->request->get['route']) && $this->request->get['route'] == 'extension/feed/google_sitemap') {
            return;
        }

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


  В 24.08.2019 в 02:46, Yoda сказав:

А вот строчку в htaccess не нужно было комментировать.

И в seo_pro неплохо было бы добавить вот такое: 

 

        if (isset($this->request->get['route']) && $this->request->get['route'] == 'extension/feed/google_sitemap') {
            return;
        }

Expand  

 

Вот! Вот теперь всё заработало! Огромная благодарность. А без этой строчки не работало! Я проверял даже на чистом ocstore!

 

Еще раз резюмирую что нужно сделать, чтобы заработало в ocStore 2.3.0.2.3 .

В /catalog/controller/startup/seo_pro.php Добавляем после  

	if (isset($this->request->get['route']) && $this->request->get['route'] == 'error/not_found') {
		return;
	}

это

	if (ltrim($this->request->server['REQUEST_URI'], '/') == 'sitemap.xml') {
		$this->request->get['route'] = 'extension/feed/google_sitemap';
		return;
	}
	if (isset($this->request->get['route']) && $this->request->get['route'] == 'extension/feed/google_sitemap') {
            return;
        }

И получаем работающий site/sitemap.xml , который даже не конфликтует с HTML-картой /sitemap/

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

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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