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

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


Recommended Posts

Найдено ли какое-то решение с ссылками вида 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 weeks later...

я не модераторадмин и прав на изменение названия топиков нету.я делал в 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 months later...

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
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

Important Information

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