Jump to content

Recommended Posts

1.5.5.1.1 версия опенкарта? у меня 1.5.6.

ocStore.

А версия SEO Pro какая?

Соответствующая.

Share this post


Link to post
Share on other sites

Соответствующая.

seo_pro.php(ocStore1.5.5).zip - сам файлик seo_pro.php отсюда? :) попробовал этот файлик, проблема та же. Причем точки вконце отрабатывает норм, генерит 301 и перебрасывает на верный ЮРЛ, а вот точку вначале никак. у Вас же все ок. Причем не пойму связи версии самого движка магазина, ЮРЛ то сразу попадает в seo_pro.php который его обрабатывает?

 

А есть кто использующий seo_pro на OpenCart 1.5.6 ?

 

P.S.

но Вы все же согласны что это не есть хорошо?  :-)

Share this post


Link to post
Share on other sites

seo_pro.php(ocStore1.5.5).zip - сам файлик seo_pro.php отсюда? :)

Модификация SEO Pro от freelancer входит в дистрибутив ocStore 1.5.5.1.1, поэтому и написал, что соответствующая.

В шапке темы есть комментарий:

Сообщение отредактировал freelancer: 06 Ноябрь 2013 - 08:11

обновил seopro из ocStore

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

 

но Вы все же согласны что это не есть хорошо? :-)

Я не говорил, что это хорошо, просто не люблю поспешные выводы, а Вы их сделали, данная проблема отсутствует при корректной работе SEO Pro, остальное персоналии.

Share this post


Link to post
Share on other sites

Модификация SEO Pro от freelancer входит в дистрибутив ocStore 1.5.5.1.1, поэтому и написал, что соответствующая.

В шапке темы есть комментарий:

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

В том то и дело, что я использую версию из шапки, после ее обновления. Да и только что перепробовал все варианты файла seo_pro.php проблема не исчезает. Видимо все же что-то связано со стыковкой с OpenCart 1.5.6.

 

Смог добиться только закомментировав 80, и 81ю строки:

 

list($last_part) = explode('.', array_pop($parts));

array_push($parts, $last_part);

 

Не совсем понял для чего это сделано. Подкажет кто?

 

Причем проблема возникает только когда точка последней правой части ЮРЛА, сколько не ставь точки в начало или конец других частей, до или после слешей все ок, даже в последней части, если поставить точку вконец то все ок.

Share this post


Link to post
Share on other sites

Видимо все же что-то связано со стыковкой с OpenCart 1.5.6.

Корректную работу SEO Pro на OpenCart версии 1.5.6 никто не тестировал и не гарантировал, так что к Вашему сожалению - возможно всё.

 

Не совсем понял для чего это сделано. Подкажет кто?

Для определения окончания ЧПУ, например, .html, точка - разделитель.

Share this post


Link to post
Share on other sites

Корректную работу SEO Pro на OpenCart версии 1.5.6 никто не тестировал и не гарантировал, так что к Вашему сожалению - возможно всё.

 

Для определения окончания ЧПУ, например, .html, точка - разделитель.

Спасибо за пояснение. Теперь понял для чего отсекается точка. В случае не использования таких окончаний думаю можно оставить эти строки закомментированными до выяснение причин и совместимостей с 1.5.6.

Правда у меня он выдает 404 в таких случаях, а в Вашем примере после точки редиректит на главную. Странно, но это уже не есть проблем.

Спасибо за дискуссию :)

Share this post


Link to post
Share on other sites

Пардон если оффтоп. А раз уж тема пошла, может удастся получить подсказку, как к ЮРЛ товара подставлять ?variable=a ? потому как seo_pro его съедает и не дает мне возможности передать мой параметр контроллеру. В категориях все ок, добавляю свое значение и оно не съедается. 

Ну и буду признателен за подсказу, как и где seo_pro подменяет ЮРЛы формируемые контроллером?! У меня в многих местах на сайте формировались специальные ЮРЛы в контроллере, после установки seo_pro это все перестало работать, какой бы я не формировал ЮРЛ в контроллере(что бы не добавлял к нему) все равно в темплейте ловлю сеошный ЮРЛ к товару, согласно пути т.е. так как его сформировал seo_pro!

 

Заранее спасибо!

Share this post


Link to post
Share on other sites

Пардон если оффтоп. А раз уж тема пошла, может удастся получить подсказку, как к ЮРЛ товара подставлять ?variable=a ? потому как seo_pro его съедает и не дает мне возможности передать мой параметр контроллеру.

 

Заранее спасибо!

Есть такое дело, этот баг надо было давно исправить.

Как совет пользуйтесь ?tracking=page-2_sort-desc (page и tracking seo_pro не удаляет, остальные параметры get просто убивает) и т.п. с разделителем _ для параметров. Не очень конечно красиво, но другого выхода пока нет для seo_pro

Share this post


Link to post
Share on other sites

Не очень конечно красиво, но другого выхода пока нет для seo_pro

Действительно не красиво и крайне категорично, поспорю.

Share this post


Link to post
Share on other sites

Есть такое дело, этот баг надо было давно исправить.

Как совет пользуйтесь ?tracking=page-2_sort-desc (page и tracking seo_pro не удаляет, остальные параметры get просто убивает) и т.п. с разделителем _ для параметров. Не очень конечно красиво, но другого выхода пока нет для seo_pro

Я попытался решить вот так:

if (isset($tmp['tracking'])) {
$data['tracking'] = $tmp['tracking'];
}

// added
if (isset($tmp['variable'])) { 
$data['variable'] = $tmp['variable'];
}

Теперь моя переменная перестала кушаться в продукте и в списке товаров(категориях) ЮРЛы перехода к товарам стали нормальными, т.е. такими как я их формирую.

 

Осталось придумать как ?variable=a превратить в /variable-a/ :) .htaccess подправил для этого, в таблицу url_alias внес, при переходе на /variable-a/ перескакивает (редирект) на ?variable=a 

Share this post


Link to post
Share on other sites

Я попытался решить вот так

Я реализовал так-же. :wink:

Share this post


Link to post
Share on other sites

 

Я попытался решить вот так:

if (isset($tmp['tracking'])) {
$data['tracking'] = $tmp['tracking'];
}

// added
if (isset($tmp['variable'])) { 
$data['variable'] = $tmp['variable'];
}

Теперь моя переменная перестала кушаться в продукте и в списке товаров(категориях) ЮРЛы перехода к товарам стали нормальными, т.е. такими как я их формирую.

 

Осталось придумать как ?variable=a превратить в /variable-a/ :) .htaccess подправил для этого, в таблицу url_alias внес, при переходе на /variable-a/ перескакивает (редирект) на ?variable=a 

 

Ну это вам пришлось допиливать SeoPro

А я имел ввиду универсальное решение, а не к конкретному сайту.

Share this post


Link to post
Share on other sites

Такая проблема: есть магазин на ocStore 1.5.5.1.1 после добавления новых товаров у них не отображаться чпу, у раннее добавленных товаров, категорий .. все норм. После удаления кэша seopro (cache.seo_pro) чпу  всех товаров начинает нормально отображаться!! Глюк проявился спонтанно, изменений на сайте не было. Подскажите куда копать?

Share this post


Link to post
Share on other sites

никуда - удалили кеш - все нормально - уже хорошо.

Копать? в сторону добавления/изменения в таблицу url_alias - удалили кеш

Или сделать "пимпочку" - удаление seo кеш

Share this post


Link to post
Share on other sites
memcached

никуда - удалили кеш - все нормально - уже хорошо.

Копать? в сторону добавления/изменения в таблицу url_alias - удалили кеш

Или сделать "пимпочку" - удаление seo кеш

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

 

P.S. разворачивал из бекапа на localhost эффект такой же как и на боевом.

P.P.S. изначально все кэшировалось не на диск, а в memcached. После того как заметил, что сео урлы не подтягиваются перевел весь кэш на диск (думал что проблема в memcached), но нет....

Share this post


Link to post
Share on other sites

В модуле управления seo pro есть vQmod для авто-очистки кеша

Share this post


Link to post
Share on other sites

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

 

1. Квадроциклы \ Запчасти для Yamaha

2. Запчасти в наличии \ для квадроциклов Yamaha

 

Движок OcStore 1.5.5.1, настроен SeoPro и ЧПУ. 

 

Хочу сделать переадресацию с "Запчасти в наличии \ для квадроциклов Yamaha" на "Квадроциклы \ Запчасти для Yamaha" и в последствии убрать "Запчасти в наличии".

 

В htaccess добавляю строку

Redirect 301 /zapchasti-v-nalichii/dlya-kvadrociklov-brp/ http://snegoatv.ru/kvadrocikly/zapchasti-dlya-brp-/

 

В итоге перекидывает на страницу http://snegoatv.ru/kvadrocikly/zapchasti-dlya-brp-/?_route_=zapchasti-v-nalichii/dlya-kvadrociklov-brp/

и появляется Ошибка: На этой странице обнаружена циклическая переадресация

 

Что делаю не так?

Share this post


Link to post
Share on other sites

Здравствуйте!

Пользуюсь SeoPro. Все отлично работает, уже как год =)

Окончание ЧПУ: html

 

Сегодня начал разбираться с Метками в URL (http://help.yandex.ru/metrika/sources/tags.xml) добавляю к URL site.ru/catrgory/tovar.html?from=test_metok. При переходе по такой ссылки, моментально срабатывает редирект на site.ru/catrgory/tovar.html , естественно, метрика/аналитика  не успевает взять инфу с метки.

 

Но! На главной странице, страницах(статьях) и в категориях - все работает хорошо, редирект на срабатывает. Инфа появляется в статистике.

site.ru/?from=test_metok

site.ru/iphone?from=test_metok

site.ru/about.html?from=test_metok

 

А вот в товарах, с этим редиректом не работают метки.

 

Сталкивался кто с таким? Избавиться от .html не могу.

 

----------

 

Спасибо zubovd!

В seopro.php находим:

if (isset($tmp['tracking'])) {
$data['tracking'] = $tmp['tracking'];
}
 
Копируем, и вставляем ниже. Вместо tracking стаим свои теги.
Например у меня получилось так:
if (isset($tmp['tracking'])) {
$data['tracking'] = $tmp['tracking'];
}
if (isset($tmp['utm_source'])) {
$data['utm_source'] = $tmp['utm_source'];
}
if (isset($tmp['utm_medium'])) {
$data['utm_medium'] = $tmp['utm_medium'];
}
if (isset($tmp['utm_campaign'])) {
$data['utm_campaign'] = $tmp['utm_campaign'];
}
if (isset($tmp['utm_content'])) {
$data['utm_content'] = $tmp['utm_content'];
}
if (isset($tmp['from'])) {
$data['from'] = $tmp['from'];
}
if (isset($tmp['utm_term'])) {
$data['utm_term'] = $tmp['utm_term'];
}
 
 

zubovd советует в robots.txt закрыть эти теги, но я надеюсь что тег rel="canonical" не даст попасть дублям в поиск.

Edited by PVL

Share this post


Link to post
Share on other sites

Добрый день! Прошу помощи, сам не могу разобраться в чем проблема.

 

ocStore 1.5.5.1.1

SeoPro встроен.

сайт: terratex.ru

 

ЧПУ вкл

SeoPro выбран

ЧПУ товаров с категориями: нет

окончание .html

 

В чем проблема:

Все ссылки на товары, новости, контакты, производителя - идеальные, 1-в-1 как прописано в url_alias. К примеру: http://terratex.ru/7382e6g-server-ibm-system-x3300-m4-express.html

А вот ссылки на любую категорию имеет страшный вид: http://terratex.ru/index.php?route=product/category&path=1664_1665_1666

Хотя в url_alias прописаны все чпу для категорий, пример: url_alias_id query keyword dot.gif dot.gif dot.gif 8701 category_id=1610 catalog/computers/HP_7500_Elite

 

Если включить вместо SeoPro режим "По умолчанию", пропадают чпу у производителей, у категорий они появляются, но по этим ссылкам выдается "Запрашиваемая страница не найдена".

 

Что делать не знаю...попробовал уже по-моему все что можно. Помогите!

 

Файл .htaccess

Options +SymLinksIfOwnerMatch
Options -Indexes

Order deny,allow
Deny from all





RewriteEngine On
#RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^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 [QSA]


RewriteCond %{HTTP_HOST} ^(www\.terratex\.ru)(:80)? [NC]
RewriteRule ^(.*) http://terratex.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://terratex.ru/ [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]

 

Код файла seo_pro

class ControllerCommonSeoPro extends Controller {
private $cache_data = null;

public function __construct($registry) {
parent::__construct($registry);
$this->cache_data = $this->cache->get('seo_pro');
if (!$this->cache_data) {
$query = $this->db->query("SELECT LOWER(`keyword`) as 'keyword', `query` FROM " . DB_PREFIX . "url_alias");
$this->cache_data = array();
foreach ($query->rows as $row) {
$this->cache_data['keywords'][$row['keyword']] = $row['query'];
$this->cache_data['queries'][$row['query']] = $row['keyword'];
}
$this->cache->set('seo_pro', $this->cache_data);
}
}

public function index() {

// Add rewrite to url class
if ($this->config->get('config_seo_url')) {
$this->url->addRewrite($this);
} else {
return;
}

// Decode URL
if (!isset($this->request->get['_route_'])) {
$this->validate();
} else {
$route_ = $route = $this->request->get['_route_'];
unset($this->request->get['_route_']);
$parts = explode('/', trim(utf8_strtolower($route), '/'));
list($last_part) = explode('.', array_pop($parts));
array_push($parts, $last_part);

$rows = array();
foreach ($parts as $keyword) {
if (isset($this->cache_data['keywords'][$keyword])) {
$rows[] = array('keyword' => $keyword, 'query' => $this->cache_data['keywords'][$keyword]);
}
}

if (count($rows) == sizeof($parts)) {
$queries = array();
foreach ($rows as $row) {
$queries[utf8_strtolower($row['keyword'])] = $row['query'];
}

reset($parts);
foreach ($parts as $part) {
$url = explode('=', $queries[$part], 2);

if ($url[0] == 'category_id') {
if (!isset($this->request->get['path'])) {
$this->request->get['path'] = $url[1];
} else {
$this->request->get['path'] .= '_' . $url[1];
}
} elseif (count($url) > 1) {
$this->request->get[$url[0]] = $url[1];
}
}
} else {
$this->request->get['route'] = 'error/not_found';
}

if (isset($this->request->get['product_id'])) {
$this->request->get['route'] = 'product/product';
if (!isset($this->request->get['path'])) {
$path = $this->getPathByProduct($this->request->get['product_id']);
if ($path) $this->request->get['path'] = $path;
}
} 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/info';
} elseif (isset($this->request->get['information_id'])) {
$this->request->get['route'] = 'information/information';
} elseif(isset($this->cache_data['queries'][$route_])) {
header($this->request->server['SERVER_PROTOCOL'] . ' 301 Moved Permanently');
$this->response->redirect($this->cache_data['queries'][$route_]);
} else {
if (isset($queries[$parts[0]])) {
$this->request->get['route'] = $queries[$parts[0]];
}
}


$this->validate();

if (isset($this->request->get['route'])) {
return $this->forward($this->request->get['route']);
}
}
}

public function rewrite($link) {
if (!$this->config->get('config_seo_url')) return $link;

$seo_url = '';

$component = parse_url(str_replace('&', '&', $link));

$data = array();
parse_str($component['query'], $data);

$route = $data['route'];
unset($data['route']);

switch ($route) {
case 'product/product':
if (isset($data['product_id'])) {
$tmp = $data;
$data = array();
if ($this->config->get('config_seo_url_include_path')) {
$data['path'] = $this->getPathByProduct($tmp['product_id']);
if (!$data['path']) return $link;
}
$data['product_id'] = $tmp['product_id'];
if (isset($tmp['tracking'])) {
$data['tracking'] = $tmp['tracking'];
}
}
break;

case 'product/category':
if (isset($data['path'])) {
$category = explode('_', $data['path']);
$category = end($category);
$data['path'] = $this->getPathByCategory($category);
if (!$data['path']) return $link;
}
break;

case 'product/product/review':
case 'information/information/info':
return $link;
break;

default:
break;
}

if ($component['scheme'] == 'https') {
$link = $this->config->get('config_ssl');
} else {
$link = $this->config->get('config_url');
}

$link .= 'index.php?route=' . $route;

if (count($data)) {
$link .= '&' . urldecode(http_build_query($data, '', '&'));
}

$queries = array();
foreach ($data as $key => $value) {
switch ($key) {
case 'product_id':
case 'manufacturer_id':
case 'category_id':
case 'information_id':
$queries[] = $key . '=' . $value;
unset($data[$key]);
$postfix = 1;
break;

case 'path':
$categories = explode('_', $value);
foreach ($categories as $category) {
$queries[] = 'category_id=' . $category;
}
unset($data[$key]);
break;

default:
break;
}
}

if(empty($queries)) {
$queries[] = $route;
}

$rows = array();
foreach($queries as $query) {
if(isset($this->cache_data['queries'][$query])) {
$rows[] = array('query' => $query, 'keyword' => $this->cache_data['queries'][$query]);
}
}

if(count($rows) == count($queries)) {
$aliases = array();
foreach($rows as $row) {
$aliases[$row['query']] = $row['keyword'];
}
foreach($queries as $query) {
$seo_url .= '/' . rawurlencode($aliases[$query]);
}
}

if ($seo_url == '') return $link;

$seo_url = trim($seo_url, '/');

if ($component['scheme'] == 'https') {
$seo_url = $this->config->get('config_ssl') . $seo_url;
} else {
$seo_url = $this->config->get('config_url') . $seo_url;
}

if (isset($postfix)) {
$seo_url .= trim($this->config->get('config_seo_url_postfix'));
} else {
$seo_url .= '/';
}

if(substr($seo_url, -2) == '//') {
$seo_url = substr($seo_url, 0, -1);
}

if (count($data)) {
$seo_url .= '?' . urldecode(http_build_query($data, '', '&'));
}

return $seo_url;
}

private function getPathByProduct($product_id) {
$product_id = (int)$product_id;
if ($product_id < 1) return false;

static $path = null;
if (!is_array($path)) {
$path = $this->cache->get('product.seopath');
if (!is_array($path)) $path = array();
}

if (!isset($path[$product_id])) {
$query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . $product_id . "' ORDER BY main_category DESC LIMIT 1");

$path[$product_id] = $this->getPathByCategory($query->num_rows ? (int)$query->row['category_id'] : 0);

$this->cache->set('product.seopath', $path);
}

return $path[$product_id];
}

private function getPathByCategory($category_id) {
$category_id = (int)$category_id;
if ($category_id < 1) return false;

static $path = null;
if (!is_array($path)) {
$path = $this->cache->get('category.seopath');
if (!is_array($path)) $path = array();
}

if (!isset($path[$category_id])) {
$max_level = 10;

$sql = "SELECT CONCAT_WS('_'";
for ($i = $max_level-1; $i >= 0; --$i) {
$sql .= ",t$i.category_id";
}
$sql .= ") AS path FROM " . DB_PREFIX . "category t0";
for ($i = 1; $i < $max_level; ++$i) {
$sql .= " LEFT JOIN " . DB_PREFIX . "category t$i ON (t$i.category_id = t" . ($i-1) . ".parent_id)";
}
$sql .= " WHERE t0.category_id = '" . $category_id . "'";

$query = $this->db->query($sql);

$path[$category_id] = $query->num_rows ? $query->row['path'] : false;

$this->cache->set('category.seopath', $path);
}

return $path[$category_id];
}

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')), 'SSL'));
} 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')), 'NONSSL'));
}

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

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

private function strpos_offset($needle, $haystack, $occurrence) {
// explode the haystack
$arr = explode($needle, $haystack);
// check the needle is not out of bounds
switch($occurrence) {
case $occurrence == 0:
return false;
case $occurrence > max(array_keys($arr)):
return false;
default:
return strlen(implode($needle, array_slice($arr, 0, $occurrence)));
}
}

private function getQueryString($exclude = array()) {
if (!is_array($exclude)) {
$exclude = array();
}

return urldecode(http_build_query(array_diff_key($this->request->get, array_flip($exclude))));
}
}
?>

Share this post


Link to post
Share on other sites

Как подружить этот модуль с модулем quick-edit???

Share this post


Link to post
Share on other sites

Нигде не нашел как вместо site.ru/category сделать site.ru/category.html ? Версия Opencart 1.5.1.3. SeoPro установлен.

Share this post


Link to post
Share on other sites

А смысл?

Share this post


Link to post
Share on other sites

хочу чтоб все страницы заканчивались на .html Сейчас некоторые с .html некоторые без. Возможно ли так сделать?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By legioner26
      Модуль SEO генератор мета описания позволяет провести оптимизацию всех категорий и товаров. Очень прост в эксплуатации
      При первом прохождении  перезаписывает meta по все товарам, категориям, и сохраняет информацию о заполнении проставляя метки. 
      Все что от Вас требуется, это задать шаблон для заполнения meta.
       
      Также добавлена возможность автоматической массовой генерации отсутствующих SEO URL в товарах и категориях,
      при нажатии на кнопку Обновить ЧПУ (SEO URL)  модуль проставить URL во всех товарах и категориях в которых они отсутствуют.
       
      Возможность устранения дублей SEO URL
       
      ПРИМЕР заполнения прилагается в скриншоте.
       
      УСТАНОВКА
      1. Установить модификатор через Установку дополнения, очистить кешь.
      2. Скопировать папку admin в корень сайта.
      УСТАНОВКА для ОС 3.х
       Устанавливаем архив Uodate-Meta3x.ocmod.zip через Установку расширений, чистим кеш.
      ПРИМЕЧАНИЕ
      Модуль не закублен с открытым исходным кодом, не требует ключа активации.
      Тех. поддержка осуществляется для клиентов купившим модуль для конкретного ресурса, поэтому при покупке обязательно указываем Ваш домен.
       
      ___________________
       
      Также советую приобрести модуль от разработчика @chukcha Редирект Универсал 
      Незаменимый инструмент для редиректов, имеется 410 жизненно важный для удаленных товаров.
       
    • By legioner26
      499.00 руб
      Скачать/Купить дополнение


      SEO Генератор мета тегов (категории, товары), SEO URL
      Модуль SEO генератор мета описания позволяет провести оптимизацию всех категорий и товаров. Очень прост в эксплуатации
      При первом прохождении  перезаписывает meta по все товарам, категориям, и сохраняет информацию о заполнении проставляя метки. 
      Все что от Вас требуется, это задать шаблон для заполнения meta.
       
      Также добавлена возможность автоматической массовой генерации отсутствующих SEO URL в товарах и категориях,
      при нажатии на кнопку Обновить ЧПУ (SEO URL)  модуль проставить URL во всех товарах и категориях в которых они отсутствуют.
       
      Возможность устранения дублей SEO URL
       
      ПРИМЕР заполнения прилагается в скриншоте.
       
      УСТАНОВКА
      1. Установить модификатор через Установку дополнения, очистить кешь.
      2. Скопировать папку admin в корень сайта.
      УСТАНОВКА для ОС 3.х
       Устанавливаем архив Uodate-Meta3x.ocmod.zip через Установку расширений, чистим кеш.
      ПРИМЕЧАНИЕ
      Модуль не закублен с открытым исходным кодом, не требует ключа активации.
      Тех. поддержка осуществляется для клиентов купившим модуль для конкретного ресурса, поэтому при покупке обязательно указываем Ваш домен.
       
      ___________________
       
      Также советую приобрести модуль от разработчика @chukcha Редирект Универсал 
      Незаменимый инструмент для редиректов, имеется 410 жизненно важный для удаленных товаров.
       
      Добавил legioner26 Добавлено 31.03.2019 Категория SEO, карта сайта, оптимизация Системные требования Сайт разработчика Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1 Обращение к серверу разработчика Нет Старая цена 950  
    • By ScartFM
      При копировании товара (функционал в админке) - создаются 2 копии, вместо 1.
       
      Сначала думал из-за какого-то модуля. Поставил чистый ocStore 3.0.2. Проблема сохранилась.
      Подскажите в чем может быть проблема, куда смотреть?
       
       
       
    • By ibond
      Столкнулся с проблемой, что Опера делает дубли при добавлении новых модулей. Например, создаешь новый html-блок, и после сохранения появляется дубликат с новым id.
      https://monosnap.com/file/CAWNzoJOkjVzECqtrJpxqTXScLPJ25
       
      Поставил в лог запись и вижу, что контроллер отрабатывает два раза:
      2019-05-18 8:23:11 - extension 2019-05-18 8:23:25 - index() 2019-05-18 8:23:35 - index() 2019-05-18 8:23:35 - POST 2019-05-18 8:23:35 - addModule 2019-05-18 8:23:35 - index() 2019-05-18 8:23:35 - POST 2019-05-18 8:23:35 - addModule 2019-05-18 8:23:35 - extension  
      Замечено в версии OPR/62.0.3319.0 (Edition developer). На обычной Опере нормально и в других браузерах тоже. Проверял на opencart 2.x, 3.x.  В приватном окне тоже самое.
      Возможно добавилось что-то в настройках самой Оперы?
       
      Появилось наверное после последнего обновления, но точно не скажу.
       
      Есть у кого возможность проверить?
       
      UPDATE: Сделал полный реинсталл. Проблема пропала при версии 59.0.3218.0. Сразу после обновления проблема появилась.
    • By AliyaMuzZa
      Здравствуйте! Установлен ocstore 2.3.
      Делаю анализ сайта в "руках". Выдает такую критическую ошибку: Наличие индексируемых дублей страниц
      И список.
      Как избавиться от этого? Подскажите, пожалуйста!
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.