Kerm Posted March 21, 2012 Share Posted March 21, 2012 Переделываю один сайт клиента и столкнулся с такой проблемой что у него на старой престе ссылки на товары были такие: http://site.ru/product/povsednevnnye-platja-viktorija/ А на обычной престе идут такие: http://site.ru/название категории/povsednevnnye-platja-viktorija.html Начал разбираться, увидел что у него файл Link.php переделан и ЧПУ, но мне этот файл и его чпу не подошли, не чего не работает, у клиента версия 1.4.0.17 у меня 1.4.7.0 Попробовал сделать сам, в результате ссылки стали такими же, но пишет что товар не найден...может кто помочь? Вот мой код Classes/Link.php public function getProductLink($id_product, $alias = NULL, $category = NULL, $ean13 = NULL, $id_lang = NULL) { global $cookie; if (is_object($id_product)) { $link = ''; if ($this->allow == 1) { $link .= (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang).'product/'); //if (isset($id_product->category) AND !empty($id_product->category) AND $id_product->category != 'home') // $link .= $id_product->category.'/'; //else // $link .= ''; //$link .= (int)$id_product->id.'-'; if (is_array($id_product->link_rewrite)) $link.= $id_product->link_rewrite[(int)$cookie->id_lang]; else $link.= $id_product->link_rewrite; if ($id_product->ean13) $link .='-'.$id_product->ean13; else $link .= ''; $link .= '/'; } else { $link .= (_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product->id); } return $link; } else if ($alias) { $link = ''; if ($this->allow == 1) { $link .= (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang).'product/'); //if ($category AND $category != 'home') // $link .= $category.'/'; //else // $link .= ''; $link .= $alias; if ($ean13) $link .='-'.$ean13; else $link .= ''; $link .= '/'; } else $link .=(_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product); return $link; } else return _PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product; } И .htaccess файл: RewriteEngine on # URL rewriting rules RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1-$2$3.jpg [L] RewriteRule ^([0-9]+)\-([0-9]+)/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1-$2.jpg [L] RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$1$2.jpg [L] RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$1$2$3.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg [L] RewriteRule ^c/([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L] RewriteRule ^c/([a-zA-Z-]+)/[a-zA-Z0-9-]+\.jpg$ /img/c/$1.jpg [L] RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L] RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L] RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L] RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.php?id_category=$1&noredirect=1 [QSA,L] RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1 [QSA,L] RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*) /supplier.php?id_supplier=$1 [QSA,L] RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 [QSA,L] RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms=$1 [QSA,L] RewriteRule ^content/category/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 [QSA,L] RewriteRule ^blog/$ /modules/newscore/news.php [L,E] RewriteRule ^blog/entry/([0-9]+)-([a-zA-Z0-9-]*).html(.*)$ /modules/newscore/news.php?id_entry=$1 [QSA,L,E] RewriteRule ^blog/category/([0-9]+)-([a-zA-Z0-9-]*).html(.*)$ /modules/newscore/news.php?category_id=$1 [QSA,L,E] RewriteRule ^blog/category/([0-9]+)-([a-zA-Z0-9-]*)/entry/([0-9]+)-([a-zA-Z0-9-]*)(.*)$ /modules/newscore/news.php?category_id=$1&id;_entry=$3 [QSA,L,E] RewriteRule ^category/([a-zA-Z0-9-]*)/ /category.php?id_category=$1 [QSA,L] RewriteRule ^product/([a-zA-Z0-9-]*)/ /product.php?id_product=$1 [QSA,L] RewriteRule ^content/([a-zA-Z0-9-]*) /cms.php?id_cms=$1 [QSA,L] RewriteRule ^content/([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 [QSA,L] </IfModule> Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 Попробовал сделать как у клиента на старом сайте, вот так: public function getProductLink($id_product, $alias = NULL, $category = NULL, $ean13 = NULL, $id_lang = NULL) { if (is_object($id_product)) return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).'product/'.$id_product->link_rewrite.'/') : (_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)($id_product->id)); if ($alias) return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).'product/' .$alias.'/') : (_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)($id_product)); return _PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)($id_product); } Все равно пишет что товар не найден... Link to comment Share on other sites More sharing options...
frozzen Posted March 21, 2012 Share Posted March 21, 2012 Непонятно из Вашего вопроса как же точно выглядит Ваша новая ссылка на продукт. ID_PRODUCT в ней присутствует? Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 Вот так ссылка сейчас выглядит: http://site.ru/product/povsednevnnye-platja-viktorija/ (в конце это название товара) Если я вбиваю прямую ссылку http://site/product.php?id_product=721 то мне пишет: [Debug] This page has moved Please use the following URL instead: http://site.ru/product/povsednevnnye-platja-viktorija/ Но вот товара на странице нету если перейти по этой ссылке! Скорее всего я чего то не правильно в .htaccess указываю... Link to comment Share on other sites More sharing options...
frozzen Posted March 21, 2012 Share Posted March 21, 2012 ID_PRODUCT должен присутствовать обязательно. Продукт отыскивается по нему, а не по наименованию Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 Дык где что поправить то? подскажи P.S.: Прочти ПМ Link to comment Share on other sites More sharing options...
frozzen Posted March 21, 2012 Share Posted March 21, 2012 Думаю, что надо сравнивать модули ProductController.php и наверное Product.php. Сообщение, которое Вы приводите, выводится функцией canonicalRedirection() из ProductController.php. Возможно в той версии по другому шла обработка, а может быть у клиента переписывали модули, поэтому рекомендую заглянуть в папку Override Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 В папке override не чего криминального не вижу.. classes/Cart.php, Customer.php, PDF.php, Search.php, Tools.php, Validate.php controllers/AddressController.php, ParentOrderController.php Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 Я закинул ProductController.php и Product.php из папки клиента, не чего не изменилось... Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 Мне удалось добиться такого вида ссылки: http://site.ru/product/1014-vechernie-platja-asimmetrichnye-klassik/ Но я по прежнему не могу брать ID впереди...вот .htaccess: RewriteRule ^product/([0-9]+)\-[a-zA-Z0-9-]*/ /product.php?id_product=$1 [QSA,L] Все попытки убрать ID из ссылки не к чему хорошему не приводят.. Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted March 21, 2012 Share Posted March 21, 2012 На англофоруме много раз подымался вопрос и вроде даже решение публиковали, надеюсь перед воплощением сего клиент понимает что имена у товаров должны быть уникальны и желательно этот момент контролировать на этапе добавления товара. хтасесс тут ни при чем пока что, сервер должен получить параметр id_product=**число**, ты же хочешь отдать ему только имя товара, т.е. надо контрол переписать так чтобы он получал имя и отдавал по нему товар из БД. в итоге правило будет выглядеть как-то так: RewriteRule^product/([a-zA-Z0-9-])*/ /product.php?product_name=$1 [QSA,L] Link to comment Share on other sites More sharing options...
frozzen Posted March 21, 2012 Share Posted March 21, 2012 Мне удалось добиться такого вида ссылки: http://site.ru/product/1014-vechernie-platja-asimmetrichnye-klassik/ Но я по прежнему не могу брать ID впереди...вот .htaccess: RewriteRule ^product/([0-9]+)\-[a-zA-Z0-9-]*/ /product.php?id_product=$1 [QSA,L] Все попытки убрать ID из ссылки не к чему хорошему не приводят.. Не совсем Вас понял - с ID работает? если нет, то смотрите, что вообще к Вам в ID приходит На англофоруме много раз подымался вопрос и вроде даже решение публиковали, надеюсь перед воплощением сего клиент понимает что имена у товаров должны быть уникальны и желательно этот момент контролировать на этапе добавления товара. хтасесс тут ни при чем пока что, сервер должен получить параметр id_product=**число**, ты же хочешь отдать ему только имя товара, т.е. надо контрол переписать так чтобы он получал имя и отдавал по нему товар из БД. в итоге правило будет выглядеть как-то так: Это я и имел в виду. когда говорил, что у Клиента возможно исправленный ProductController и Product Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 Код который все заставляет работать находится в Tools.php в районе 216 строчки: Но вот проблема, в 1.4.0.17 он работает, а на 1.4.7.0 выдает ошибки!!! if($_GET['tab'] != 'AdminCatalog') { if(!is_numeric($_GET[$key]) && $_GET[$key]!="") { if($key == 'id_product') { $catt=Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(" SELECT `id_product` FROM `ps_product_lang` WHERE `link_rewrite` = '".$_GET['id_product']."'"); $ret=$catt['id_product']; } elseif($key == 'id_category') { $catt=Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(" SELECT `id_category` FROM `ps_category_lang` WHERE `link_rewrite` = '".$_GET['id_category']."'"); $ret=$catt['id_category']; } elseif($key == 'id_cms') { $catt=Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(" SELECT `id_cms` FROM `ps_cms_lang` WHERE `link_rewrite` = '".$_GET['id_cms']."'"); $ret=$catt['id_cms']; } } } Если вставить как есть то выдает: Notice: Undefined index: tab in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 286 Notice: Undefined index: isolang in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: id_lang in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: content_only in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: bgcolor in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: star_pic in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: bgcolor in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: bdcolortip in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: onsum in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: onstylbas in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: onstylbas in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: id_category in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 ... Если убрать это: if($_GET['tab'] != 'AdminCatalog') { if(!is_numeric($_GET[$key]) && $_GET[$key]!="") { ...... } } И оставить только то что в середине, то выдает на странице с товаром: Notice: Undefined index: id_category in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 291 Notice: Undefined index: id_category in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 291 На странице с категориями: Notice: Undefined index: id_product in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: id_product in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 Notice: Undefined index: id_product in /var/www/support53958/data/www/site.ru/classes/Tools.php on line 287 При этом ссылка такая как нужно, контент весь отображается нормально. Как я понял нужно правило при котором на странице с товарами действует только: if($key == 'id_product') { $catt=Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(" SELECT `id_product` FROM `ps_product_lang` WHERE `link_rewrite` = '".$_GET['id_product']."'"); $ret=$catt['id_product']; } А на странице с категориями: elseif($key == 'id_category') { $catt=Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(" SELECT `id_category` FROM `ps_category_lang` WHERE `link_rewrite` = '".$_GET['id_category']."'"); $ret=$catt['id_category']; } Но вот как правильно написать это правило я не знаю, это уже выше моих сил, может кто что подскажет?? Сейчас думаю над тем чтобы попробовать поместить одну строчку в Products.php, а другую в Category.php.... Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted March 21, 2012 Share Posted March 21, 2012 Он тебе пишет что неопределен индекс id_product, 287 строка - это скл запрос с $_GET['id_product']? покажи правило для чпу которое сейчас используешь + в престе есть обертка для пост/гет запросов и экранирование данных для использования с sql если не ошибаюсь то вот этот путь $_GET['id_product'] - без проверок и т.д, ведет напрямую к sql инъекциям со всеми вытекающими. Это я и имел в виду. когда говорил, что у Клиента возможно исправленный ProductController и Product Я ТС отвечал, не вчитывался особо в другие ответы) Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 Добавление в products.php / category.php не чего не дало.. Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 # .htaccess automaticaly generated by PrestaShop e-commerce open-source solution # WARNING: PLEASE DO NOT MODIFY THIS FILE MANUALLY. IF NECESSARY, ADD YOUR SPECIFIC CONFIGURATION WITH THE HTACCESS GENERATOR IN BACK OFFICE # http://www.prestashop.com - http://www.prestashop.com/forums <IfModule mod_rewrite.c> # URL rewriting module activation RewriteEngine on # URL rewriting rules RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1-$2$3.jpg [L] RewriteRule ^([0-9]+)\-([0-9]+)/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1-$2.jpg [L] RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$1$2.jpg [L] RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$1$2$3.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg [L] RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg [L] RewriteRule ^c/([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L] RewriteRule ^c/([a-zA-Z-]+)/[a-zA-Z0-9-]+\.jpg$ /img/c/$1.jpg [L] RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L] RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L] RewriteRule ^product/([a-zA-Z0-9-]*)/ /product.php?id_product=$1 [QSA,L] RewriteRule ^category/([a-zA-Z0-9-]*)/ /category.php?id_category=$1 [QSA,L] RewriteRule ^content/([a-zA-Z0-9-]*) /cms.php?id_cms=$1 [QSA,L] RewriteRule ^content/([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 [QSA,L] RewriteRule ^blog/$ /modules/newscore/news.php [L,E] RewriteRule ^blog/entry/([0-9]+)-([a-zA-Z0-9-]*).html(.*)$ /modules/newscore/news.php?id_entry=$1 [QSA,L,E] RewriteRule ^blog/category/([0-9]+)-([a-zA-Z0-9-]*).html(.*)$ /modules/newscore/news.php?category_id=$1 [QSA,L,E] RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L] RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.php?id_category=$1&noredirect=1 [QSA,L] RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1 [QSA,L] RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*) /supplier.php?id_supplier=$1 [QSA,L] RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 [QSA,L] #RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms=$1 [QSA,L] #RewriteRule ^content/category/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 [QSA,L] </IfModule> # Catch 404 errors ErrorDocument 404 /404.php <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType text/css "access plus 1 week" ExpiresByType text/javascript "access plus 1 week" ExpiresByType application/javascript "access plus 1 week" ExpiresByType application/x-javascript "access plus 1 week" ExpiresByType image/x-icon "access plus 1 year" </IfModule> FileETag INode MTime Size <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript </IfModule> Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted March 21, 2012 Share Posted March 21, 2012 RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L] RewriteRule ^product/([a-zA-Z0-9-]*)/ /product.php?id_product=$1 [QSA,L] какой из этих путей ты используешь и получаешь "При этом ссылка такая как нужно, контент весь отображается нормально."? вид какой Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 _http://site.ru/product/povsednevnye-platja-s-pojasom-i-korotkimi-rukavami/ Link to comment Share on other sites More sharing options...
Kerm Posted March 21, 2012 Author Share Posted March 21, 2012 А почему ты думаешь что эта ошибка из-за того что то не так в .htaccess именно? Я вот лично думаю что из-за того что в Tools.php что то не так.. Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted March 21, 2012 Share Posted March 21, 2012 проверяю весь путь запроса и задавал вопрос про номер строки. нотайс сам по себе не является ошибкой, можешь забить болт, просто логи будут засираться. Link to comment Share on other sites More sharing options...
Kerm Posted March 22, 2012 Author Share Posted March 22, 2012 Нужно вот этот код изменить чтобы ошибки не шли, это очень важно чтобы ошибок не было...выключил debug режим но у меня из-за этого сайт криво выглядит...там на эти ссылки /products/ и /category/ сделаны свои, отдельные шаблоны и вот они при включенном debug пашут, а при выключенном нет...в админке там тоже при debug полно ошибок идет, тут надо именно вот этот код ниже изменить чтобы все ок было: if($key == 'id_product') { $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(" SELECT `id_product` FROM `ps_product_lang` WHERE `link_rewrite` = '".$_GET['id_product']."'"); $ret=$row['id_product']; } elseif($key == 'id_category') { $row=Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(" SELECT `id_category` FROM `ps_category_lang` WHERE `link_rewrite` = '".$_GET['id_category']."'"); $ret=$row['id_category']; } elseif($key == 'id_cms') { $row=Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(" SELECT `id_cms` FROM `ps_cms_lang` WHERE `link_rewrite` = '".$_GET['id_cms']."'"); $ret=$row['id_cms']; } Link to comment Share on other sites More sharing options...
Kerm Posted March 22, 2012 Author Share Posted March 22, 2012 Я разобрался, теперь все пашет. Вот только при дебаге дофига undefined index везде вылазиет...хз как убрать Link to comment Share on other sites More sharing options...
RoooM Posted March 31, 2013 Share Posted March 31, 2013 На что Вы тратите время и силы? Посмотрите ТОПы выдачи по запросам! Сайты в ТОП выходят и с /ru/products/ и с /katalog/ и с id товара и много прочего лишнего в адресе. Суть в чем выпиливания ид из адреса страницы? Вы сразу в топ метите? Лучше бы потратили это время и силы на продвижение сайта, оптимизацию текстов, ключевых слов, описания товаров! Удачи! Link to comment Share on other sites More sharing options...
Recommended Posts