2016-12-17 131 views
0

试图让我的搜索结果页面搜索引擎优化..友好..似乎很基本,但我的标签重写规则是相冲突的。Opencart作为搜索引擎优化网页的搜索页面

(它也使用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] 
相关问题