2016-12-17 8 views
0

検索結果ページを取得しようとするとSEOに優しい..基本的なようですが、私のタグ書き換えルールはそれと矛盾しています。Opencart検索ページ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] 
関連する問題