Ответить Новая тема Новый опрос 
Всего: 3 < 1 2 3 >
 Пожалуйста помогите, как поменять URL адрес?
Artyom4D


Профессионал
Сообщений: 304
Откуда: Киев
Регистрация: 01-11-2009


15-05-2010 15:40
Скорее для красоты. Гугль нормально разбирает линки.
 



Разработка, поддержка, оптимизация
-------------------------------------------------------
deadline-solutions.com; DS Super Slider 1.2; DS Comments
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


15-05-2010 19:42
Как убрать цифры из урл категории:
В Link.php заменяем функцию getCategoryLink
Код:
public function getCategoryLink($id_category, $alias = NULL)
    {
        if (is_object($id_category))
            return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$id_category->link_rewrite) :
            (_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category->id));
        if ($alias)
            return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$alias) :
            (_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category));
        return _PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category);
    }

В Tools.php заменяем функцию getValue
Код:
static public function getValue($key, $defaultValue = false)
    {
         if (!isset($key) OR empty($key) OR !is_string($key))
            return false;
        $ret = (isset($_POST[$key]) ? $_POST[$key] : (isset($_GET[$key]) ? $_GET[$key] : $defaultValue));

        if (is_string($ret) === true)
            $ret = urldecode(preg_replace('/((\%5C0+)|(\%00+))/i', '', urlencode($ret)));
        if ($key=="id_category") {
            $result = Db::getInstance()->getRow("SELECT `id_category` FROM `ps_category_lang` WHERE  `id_lang`=3 AND `link_rewrite`='".$ret."'");
            return $result['id_category'];
        }
        if ($key=="id_category") {
            $result = Db::getInstance()->getRow("SELECT `id_category` FROM `ps_category_lang` WHERE  `id_lang`=3 AND `link_rewrite`='".$ret."'");
            return $result['id_category'];
        }
        return !is_string($ret)? $ret : stripslashes($ret);
    }

В .htaccess заменяем
Код:
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]

на
Код:
RewriteRule ^([a-zA-Z0-9-]+)$ /category.php?id_category=$1 [QSA,L,E]

Не обязательно можно добавить индекс
Код:
ALTER TABLE `ps_category_lang` ADD UNIQUE (`link_rewrite`)


Для товаров можно сделать аналогично.


Сообщение отредактировано ors 15-05-2010 20:44 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
belgique
Новичок
Сообщений: 14
Регистрация: 18-05-2010


18-05-2010 14:19
Цитата:( ors @ 15-05-2010 20:42 Смотреть сообщение )
Как убрать цифры из урл категории:
В Link.php заменяем функцию getCategoryLink
Код:
public function getCategoryLink($id_category, $alias = NULL)
    {
        if (is_object($id_category))
            return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$id_category->link_rewrite) : 
            (_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category->id));
        if ($alias)
            return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$alias) :
            (_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category));
        return _PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category);
    }

В Tools.php заменяем функцию getValue
Код:
static public function getValue($key, $defaultValue = false)
    {
         if (!isset($key) OR empty($key) OR !is_string($key))
            return false;
        $ret = (isset($_POST[$key]) ? $_POST[$key] : (isset($_GET[$key]) ? $_GET[$key] : $defaultValue));

        if (is_string($ret) === true)
            $ret = urldecode(preg_replace('/((\%5C0+)|(\%00+))/i', '', urlencode($ret)));
        if ($key=="id_category") {
            $result = Db::getInstance()->getRow("SELECT `id_category` FROM `ps_category_lang` WHERE  `id_lang`=3 AND `link_rewrite`='".$ret."'");
            return $result['id_category'];
        }
        if ($key=="id_category") {
            $result = Db::getInstance()->getRow("SELECT `id_category` FROM `ps_category_lang` WHERE  `id_lang`=3 AND `link_rewrite`='".$ret."'");
            return $result['id_category'];
        }
        return !is_string($ret)? $ret : stripslashes($ret);
    }

В .htaccess заменяем
Код:
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]

на
Код:
RewriteRule ^([a-zA-Z0-9-]+)$ /category.php?id_category=$1 [QSA,L,E]

Не обязательно можно добавить индекс
Код:
ALTER TABLE `ps_category_lang` ADD UNIQUE (`link_rewrite`)


Для товаров можно сделать аналогично.


все конечно здорово. и даже работает. НО после данного хака, из админки пропадают значения для всех полей относящихся к категории, а при их заполнении по-новой появляются новые!!! категории, причем пропадает возможность удалять категории.
имхо, хак сырой. требуется изменение еще каких-то файлов.
вместе с тем спасибо.



 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
YellowDuck


Профессионал
Сообщений: 1054
Откуда: Ярославль
Регистрация: 29-09-2009


18-05-2010 14:43
Так а смысл в этом хаке? Как сказали выше на сео он не влияет, а ценителей красоты этих url достаточно мало и врядли в их число попадают покупатели.
 



Интернет-магазин товаров для детей yellowduck.ru
Хороший хостинг для Prestashop и не только one-hosting.ru
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
belgique
Новичок
Сообщений: 14
Регистрация: 18-05-2010


18-05-2010 18:51
приятней глазу было бы без циферок. но в общих чертах, согласен.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


18-05-2010 20:41
Зато в число ценителей попадают разработчики. Если цифры убрать, то производительность снизится. Легче товар по индексу брать, чем по текстовому полю.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Chikago
Новичок
Сообщений: 16
Регистрация: 12-03-2010


21-10-2010 17:22
После включения дружественного URL на странице с товаром не подгружается wiznav.css. В чём проблема?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
noodly
Новичок
Сообщений: 15
Регистрация: 25-08-2011


10-10-2011 20:48
Мне интересно, почему в этом модуле пишется duplicate content" status for your Website. Он что сделает копию страниц с новым адресом и оставит старые?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
e_v_medvedev
Профессионал
Сообщений: 806
Откуда: Москва
Регистрация: 25-03-2011


11-10-2011 01:50
По поводу убирания ID из урлов есть еще одна неприятная мелочью. Пропадает контент в метатегах для товаров и категорий, потому что текущий загрузчик метаданных (в версии 1.4) вытаскивает их именно через ID.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
noodly
Новичок
Сообщений: 15
Регистрация: 25-08-2011


17-10-2011 16:22
htaccc.jpg - Размер файла40.62KB (Нажмите для увеличения)

В Панель Управления >> Инстументы >> Генератор
Вот такой результат. Как видите никакого генератора нет. Можно ли этот файл как-то сгенерировать вручную?

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

Заранее спасибо.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 3 < 1 2 3 >