2014-03-12 74 views
1

我創建了一個新的Opencart的1.5.6店 - http://www.example.eu - 但是,很多的網頁都是相同的(在文本上下文而言),其中仍在運行的老商店頁面 - http://www.example.co.uk如何將規範標籤添加到OpenCart頁面?

與這兩個網站收錄,我想通過在新網站的規範標籤引用在舊網站的所有網頁相同:

http://www.example.eu/about-us的「關於我們」頁面最好有類似的東西在其頭部分:

<link rel="canonical" href="http://www.example.co.uk/delivery"/> 

例如「投放」頁面,在http://www.example.eu/delivery應該理想地在其頭部部分類似的東西:

<link rel="canonical" href="http://www.example.co.uk/delivery"/> 

我知道如何能夠在理論上可以實現,但在實踐中不能使用它。此外,雖然我主要關心的所有信息類型的網頁,最好我很想能夠指定將有規範的標籤的確切網頁,一樣的東西:

If (this page is About-Us OR Delivery OR … OR … OR … OR …) 
{ 
Include Canonical Tag of the type <link rel="canonical" href="http://www.example.co.uk/xxxxxxxx"/> , 
where xxxxxxx changes accordingly, depending on the page. 
} 
Else 
{ 
Don’t include Canonical Tag 
} 
+0

取決於您擁有的頁數,我可以使用'in_array()'函數。然後,您可以指定數組中的所有頁面(URL)並將其傳遞。 – Boris

+0

那麼用'301'(內容移動)代碼從舊頁面重定向到新頁面呢?這可以在'.htaccess'文件中實現。 – shadyyx

回答

0

以最好的方式實現這一點是修改你的Document類,在你的控制器中設置你的規範,然後在頭控制器中渲染它。

編輯系統/庫/ document.php

地址:

private $canonical;你的類變量往上頂。

然後添加以下方法:

public function setCanonical($url) { 
    $this->canonical = $url;  
} 

public function getCanonical() { 
    return $this->canonical; 
} 

在你的頭控制器添加:

$this->data['canonical'] = $this->document->getCanonical();

然後你可以設置你的規範動態地在頭控制器:

if (isset($this->request->get['_route_'])): 
    $canonical_route = $this->request->get['_route_']; 
else: 
    $canonical_route = ''; 
endif; 

$this->document->setCanonical($this->data['base'] . $canonical_route); 

或者您可以在您的控制器中手動設置usi setCanonical方法。