2012-03-06 137 views
0

我創造了這樣一個主機名路線:Zend Framework的主機名路由和默認路由

$siteRoute = new Zend_Controller_Router_Route_Hostname(
    ':siteSlug.wordy', 
    array(
     'siteSlug' => 'main-site', 
     'module' => 'default' 
    ) 
); 

和我一起違約和其他rotues連鎖這樣的:

foreach ($router->getRoutes() as $key => $route) { 
    $router->addRoute($key, $siteRoute->chain($route)); 
} 

的問題是:

當我到main-site.wordy沒有問題。但如果我去只是wordy我收到此錯誤信息:No route matched the request

而另一個問題是,當我去wordy/admin我得到這個異常:Invalid controller specified (admin)

我怎樣才能解決這個問題?

回答

0

我建議你做一個htaccess非www網址重定向到www.wordy上的301重定向這樣你總是有:sitename路由器主機名!

RewriteEngine On 

RewriteCond %{SERVER_PORT} ^80$ 
RewriteCond %{HTTP_HOST} ^wordy$ [NC] 
RewriteRule ^(.*)$ http://www.wordy/$1 [R=301,L] 
+0

其他解決方案是以這種方式創建router_route您可以無需子域名即可進行接入,並且可以爲您的默認siteSlug「主站點」 – ovitinho 2012-05-17 06:40:36