只需創建一個RedirectorPage
並選擇第一個子頁面作爲重定向目標,即可在沒有任何附加代碼的情況下實現「虛擬」頁面。
就我個人而言,過去我使用了一個更簡單的「RedirectorPage」版本,如果直接訪問它,它會自動重定向到第一個子頁面。
例子:
class ChildRedirectorPage extends Page
{
private static $description = 'Page that has no content but automatically redirects to the first of its child-pages';
public function ContentSource() {
if($firstChild = $this->Children()->First()) {
return $firstChild;
} else {
return $this;
}
}
public function Link($action = null) {
// prevent link "redirection" when we're in CMS
if (!is_subclass_of(Controller::curr(),'LeftAndMain')){
if($firstChild = $this->Children()->First()) return $firstChild->Link($action);
else return parent::Link($action);
}
}
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->removeByName('Content', true);
return $fields;
}
}
class ChildRedirectorPage_Controller extends Page_Controller
{
function init() {
parent::init();
if($firstChild = $this->Children()->First()) {
$this->redirect($firstChild->Link(), 301);
}
}
}
我覺得URL蛞蝓實際上是有益的,因爲你的網址,於是將services/peeling-potatoes
等,這是最有可能更好的搜索引擎優化的目的。