Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Решение проблемы с SEO


 Погделиться

Рекомендованные сообещёния

Найгдено ли какое-то решение с ссылками вида http://site.ru/index.php?route=information/contact

Можно ли как-то освопотому чтодиться от /index.php?route= в страницах которые не имеют псевдонимов

Ссылка на комменирий
Погделиться на других сайих


Самое простое - прописать переадресацию в файле .htaccess Для вашего урла, например, можно всивить следущую запись:RewriteRule ^information/contact/?$ index.php?route=information/contact [L,QSA]Ну и дное по аналогии, только не забудьте потом везгде и ссылочки поправить... :roll:

Ссылка на комменирий
Погделиться на других сайих


Найгдено ли какое-то решение с ссылками вида http://site.ru/index.php?route=information/contactМожно ли как-то освопотому чтодиться от /index.php?route= в страницах которые не имеют псевдонимов

Решить можно вот иким обвместе.1)Открываем catalog/model/tool/seo_url.phpвместо кода с 13 по 45 строки всивляем
foreach ($data as $key => $value) {                if (strstr($value, '/')) {                   $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $value . "'");                   if ($query->num_rows) {                      $url .= '/' . $query->row['keyword'];                   }                }                else if (($key == 'product_id') || ($key == 'manufacturer_id') || ($key == 'information_id')) {                   $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");                   if ($query->num_rows) {                      if ($key == 'product_id' || $key == 'information_id') {                         $url .= '/' . $query->row['keyword'];                      } else {                         $url = '/' . $query->row['keyword'];                      }                      unset($data[$key]);                   }                } elseif ($key == 'path') {                   $categories = explode('_', $value);                   foreach ($categories as $category) {                      $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");                      if ($query->num_rows) {                         $url .= '/' . $query->row['keyword'];                      }                   }                   unset($data[$key]);                }             }
2)Открываем catalag/controler/common/seo_url.phpменяем код на этот
<?php    class ControllerCommonSeoUrl extends Controller {       public function index() {          if (isset($this->request->get['_route_'])) {             $parts = explode('/', $this->request->get['_route_']);             $is_shortcut = false;             foreach ($parts as $part) {                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'");                if ($query->num_rows) {                   if (strstr($query->row['query'], '/')) {                      $is_shortcut = true;                      $this->request->get['route'] = $query->row['query'];                      break;                   } else {                      $url = explode('=', $query->row['query']);                      if ($url[0] == 'product_id') {                         $this->request->get['product_id'] = $url[1];                      }                      if ($url[0] == 'category_id') {                         if (!isset($this->request->get['path'])) {                            $this->request->get['path'] = $url[1];                         } else {                            $this->request->get['path'] .= '_' . $url[1];                         }                      }                      if ($url[0] == 'manufacturer_id') {                         $this->request->get['manufacturer_id'] = $url[1];                      }                      if ($url[0] == 'information_id') {                         $this->request->get['information_id'] = $url[1];                      }                   }                }             }             if (!$is_shortcut) {                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';                }             }             if (isset($this->request->get['route'])) {                return $this->forward($this->request->get['route']);             }          }       }    }?>
3)Открываем catalog/controler/common/header.phpнаходим строку 85 после нее всивляем
$this->load->model('tool/seo_url');
Дное добавляем
$this->model_tool_seo_url->rewrite
допустим к
$this->data['login'] = HTTPS_SERVER . 'index.php?route=account/login';
получаем
$this->data['login'] = $this->model_tool_seo_url->rewrite(HTTPS_SERVER . 'index.php?route=account/login');
4)Дальше игдем phpadmin Делаем SQL запрос
INSERT INTO url_alias(`query`, `keyword`) VALUES('account/login', 'login');
и ик дноеspecialcontact.....
Ссылка на комменирий
Погделиться на других сайих


ггдеж вы все были негдельку назад)как сгделал SEO ссылки у себя, ик сразу и через mod rewrite, и через alias_url решения появились.неплохо бы это засунуть в базовый дистрибутив.

Ссылка на комменирий
Погделиться на других сайих


ггдеж вы все были негдельку назад)

как сгделал SEO ссылки у себя, ик сразу и через mod rewrite, и через alias_url решения появились.

неплохо бы это засунуть в базовый дистрибутив.

Нагдено ли решение?

А Вы исправте это название топика что-бы люди понимали о чем игдет речь.

Ссылка на комменирий
Погделиться на других сайих


я не могдераторадмин и прав на изменение названия топиков нету.

я гделал в commonseo_url.php

Добавил уловия

switch ($part) {	case 'home':		$this->request->get['route'] = 'common/home';		break;	case 'contact':		$this->request->get['route'] = 'information/contact';		break;
и ик дное, а ссылки вручную вбил - лишние запросы к БД ни к чему. А вот твоим спосопотому чтом можно сгделать управление икими страницами через админку и было бы красиво, удобно и вполне SEO оптимизировано.
Ссылка на комменирий
Погделиться на других сайих


ггдеж вы все были негдельку назад)как сгделал SEO ссылки у себя, ик сразу и через mod rewrite, и через alias_url решения появились.неплохо бы это засунуть в базовый дистрибутив.

Это точно, пропарился с этим реврайтом, а тут икое решение.Сам использую ОС, но думаю что для осильных в срочном порядке нужно выпускать ОСS 0.1.5
Ссылка на комменирий
Погделиться на других сайих


  • 2 негдели спустя...

я не могдераторадмин и прав на изменение названия топиков нету.я гделал в commonseo_url.phpДобавил уловия

switch ($part) {	case 'home':		$this->request->get['route'] = 'common/home';		break;	case 'contact':		$this->request->get['route'] = 'information/contact';		break;
и ик дное, а ссылки вручную вбил - лишние запросы к БД ни к чему. А вот твоим спосопотому чтом можно сгделать управление икими страницами через админку и было бы красиво, удобно и вполне SEO оптимизировано.
А можно поподробнее, в какую строку эти условия нужно добавить?? И ггде править ссылки??? Прошу не пинать! ;) в кодинге не бум-бум, а магазин догделать хочется!
Ссылка на комменирий
Погделиться на других сайих


  • 3 месяца спустя...

2 Den

Подходит ли Ваше решение для oc 1.4.9.1?

UPD. Пропотому чтовал ли кто это решение для версии 1.4.9.1?

По п.2... Согдержание файла seo_url.php полностью менять?

По п.3... У меня в файле catalog/controler/common/header.php были некоторые изменения (сколько точно не помню). Да вот, можете написать, после какой конкретно строчки (написано 85) всивлять

$this->load->model('tool/seo_url');
Изменено пользователем remix8080
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.