2016-12-17 2 views
0

Попытка получить страницу с результатами поиска SEO-friendly .. кажется настолько базовым, но правила переписывания моих тегов противоречат ему.Страница поиска по поиску в качестве SEO-url

(который также использует маршрутизатор product/search) - отключение перезаписи тегов, поиск по-прежнему не работает должным образом. Он показывает все, что захочет, даже если я ищу несуществующий элемент. (Такое поведение не происходит при нормальном index.php маршрута = продукта/поиска URL?)

.htaccess:

RewriteRule ^tags/([^/]*)$ index.php?route=product/search&tag=%{QUERY_STRING} [L] 
RewriteRule ^search/([^/]*)$ index.php?route=product/search&search=%{QUERY_STRING} [L] 

каталог/контроллер/запуска/seo_url.php:

    } elseif ($data['route'] == 'product/search' && $key == 'tag') { 

        $url .= '/tags/' . str_replace(' ','-',$value); 

        unset($data[$key]); 

       } elseif ($data['route'] == 'product/search' && $key !== 'tag') { 

        $url .= '/search/' . str_replace(' ','-',$value); 

        unset($data[$key]); 
        //.... 

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

Использование OpenCart 2.3.0

ответ

0

каталог/контроллер/запуска/seo_url.php

находка:

$this->request->get['route'] = 'error/not_found';

добавить:

if (strpos($this->request->get['_route_'], 'tag/') !== false) { 
          $this->request->get['route'] = 'product/search'; 
          $this->request->get['tag'] = str_replace('tag/','',$this->request->get['_route_']); 
         } 
         elseif (strpos($this->request->get['_route_'], 'search/') !== false) { 
          $this->request->get['route'] = 'product/search'; 
          $this->request->get['search'] = str_replace('search/','',$this->request->get['_route_']); 
         } 

        else { 
         $this->request->get['route'] = 'error/not_found'; 
        } 

.htaccess:

RewriteRule ^tag/([^/]*)$ index.php?route=product/search&tag=$1 [L] 
RewriteRule ^search/(.*)$ index.php?route=product/search&search=$1 [L] 
Смежные вопросы