Zend Framework主机名路由和默认路由

时间:2012-03-06 20:20:40

标签: php zend-framework routing routes zend-route

我创建了一个这样的主机名路由:

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

我将它与默认链接和其他类似的链接链接起来:

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)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我建议你在www.wordy上以非www url到301重定向进行htaccess重定向,这样你总是有:sitename for router hostname!

RewriteEngine On

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