2012-07-24 2 views
1

OpenCart 내 내 페이지 매김을 바꾸려고합니다. 이에서OpenCart 페이지 링크 변경 SEO 링크로 연결

이에

$pagination->url = $this->url->link('product/search', $url . '&page={page}'); 
// Spits out 
www.site.com/index.php?route=product/search&filter_name=QUERY&page=2 

:

$pagination->url = $this->url->link('product/search', $url . '&page={page}'); 
// Spits out 
www.site.com/search?q=QUERY&page=2 

파일은 /catalog/controller/product/search.php (OC 1.5 근처 라인 438-444에). 코드의 전체 블록 :

$pagination = new Pagination(); 
$pagination->total = $product_total; 
$pagination->page = $page; 
$pagination->limit = $limit; 
$pagination->text = $this->language->get('text_pagination'); 

$pagination->url = $this->url->link('product/search', $url . '&page={page}'); 
$this->data['pagination'] = $pagination->render(); 
+0

이것은 좋은 질문입니다. 나는 답을보기를 기대합니다. – Cleverbot

+0

나는 당신이 대답에서보고 싶은 것이 확실하지 않습니다. nginx 구성? – nk9

+0

OpenCart SEO 형식을보고 싶습니다. 기본적으로'index.php? route ='부분을 원하지 않습니다. Nginx와는 아무런 관련이 없습니다. – TheBlackBenzKid

답변

1

난 당신이 .htaccess 파일 설정을 가정하고 당신은 이미 OpenCart 1.5에 내장 된 검색 엔진을 사용하고 있습니다. 그렇지 않다면 여기에 몇 가지 좋은 지시 사항이 있습니다 : Adding SEO Friendly URL’S to OpenCart Kevin Dees 저

이것은 부분적인 해킹입니다. 그러나 수정하려는 것은 모두 페이지 매김입니다.

먼저 앞서 언급 한 .htaccess 파일에 3 줄을 추가해야합니다.

RewriteRule sitemap.xml /index.php?route=feed/google_sitemap 

추가 :

RewriteCond %{QUERY_STRING} q=([^&]*) [OR] 
RewriteCond %{SCRIPT_FILENAME} .*search$ 
RewriteRule search$ /index.php?route=product/search&filter_name=%1 [L,QSA] 

htaccess로 파일의 모든 부분이 보일 것입니다 그래서에서 같은 :이 선 후

RewriteBase/
RewriteRule sitemap.xml /index.php?route=feed/google_sitemap 
RewriteCond %{QUERY_STRING} q=([^&]*) [OR] 
RewriteCond %{SCRIPT_FILENAME} .*search$ 
RewriteRule search$ /index.php?route=product/search&filter_name=%1 [L,QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 

다음으로는 /카탈로그를 수정해야 /controller/product/search.php을 입력하여 올바른 URL을 생성하십시오. 내가 링크를 생성하는 라인을 주석 처리하고 (당신이 당신의 자신의 정보와 http://www.site.com를 교체해야합니다) 그 위에 내 자신의 2 개 라인을 추가 :

$pagination = new Pagination(); 
$pagination->total = $product_total; 
$pagination->page = $page; 
$pagination->limit = $limit; 
$pagination->text = $this->language->get('text_pagination'); 

$url = preg_replace("/filter_name/","q",$url); 
$pagination->url = "http://www.site.com/search?".$url."&page={page}"; 
//$pagination->url = $this->url->link('product/search', $url . '&page={page}'); 

$this->data['pagination'] = $pagination->render(); 

자료 :
RewriteRules의 기본 사항 중 일부는 RoScripts.com Pretty URLs - a guide to URL rewriting입니다.
다음은 Nidaan here의 블로그 주석에서 쿼리 문자열을 가져 오는 방법의 예입니다.
마지막으로 아파치의 mod_rewrite에 관한 다른 모든 것들을 방문하십시오 : Apache Module mod_rewrite

행운을 비네! 그리고 신의 축복!