gpt4 book ai didi

php - 使用 Zend_Controller_Router_Route_Hostname 在多个域上运行相同的 Zend_Framework 站点

转载 作者:可可西里 更新时间:2023-11-01 13:28:59 24 4
gpt4 key购买 nike

我需要基于 zend_framework 运行同一个站点以在多个域上运行,并且我的应用程序需要知道它在哪个域上运行。我认为使用 Zend_Controller_Router_Route_Hostname 是个好主意,但我遇到了一些问题。

我的 Bootstrap 中有以下代码

$ctrl = Zend_Controller_Front::getInstance();
$router = $ctrl->getRouter();
$router->removeDefaultRoutes();

$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
':sub-domain.:domain.:tld'
);

$defaultRoute = new Zend_Controller_Router_Route(
':controller/:action/*',
array(
'controller' => 'index',
'action' => 'index'
)
);
$router->addRoute('default',$hostnameRoute->chain($defaultRoute));

我收到以下错误“未指定子域”。我想我追踪到我的布局文件中的 $this->url 在路由与请求 url 匹配之前使用定义的路由来组装 url。如果我将默认值设置为主机名路由,我不会收到错误,但布局中的 url 使用默认值而不是当前主机名中的值。

谁能帮我解决这个问题?

最佳答案

您应该为子域定义一个默认值。将 $defaultRoute 更改为:

$defaultRoute = new Zend_Controller_Router_Route(
':controller/:action/*',
array(
'controller' => 'index',
'action' => 'index'
)
);

它应该可以工作。

关于php - 使用 Zend_Controller_Router_Route_Hostname 在多个域上运行相同的 Zend_Framework 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com