UPD: 已解決。問題是因爲我們使用nginx作爲前端。所以nginx不會將HTTP_HOST傳遞給apache。Zend Framework:從路由獲取子域參數
你好!
我在生產服務器上的本地控制器上獲取子域參數時出現問題,而本地主機沒問題。來自URL的其他參數,如控制器,操作返回,因爲他們應該。
返回null生產:
$agencyName = (string) $this->_getParam('agency');
作出的.htaccess沒有變化:
RewriteEngine On
RewriteRule ^main - [L,NC]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
這是我的虛擬主機設置:
<VirtualHost *:8080>
ServerName agencies.domain.com
ServerAlias *.agencies.domain.com
ErrorLog /var/log/apache2/agencies.domain_errors.log
DocumentRoot /var/www/agencies.domain.com/public/
<Directory "/var/www/agencies.domain.com/public">
Options -Indexes FollowSymLinks Includes
DirectoryIndex index.shtml index.php
AllowOverride All
# Controls who can get stuff from this server.
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
有誰知道爲什麼一切發生的時候?
UPD:在引導
public function run()
{
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$plainPathRoute = new Zend_Controller_Router_Route(
':module/:controller/:action/*',
array(
'module' => 'default',
'controller' => 'index',
'action' => 'index',
)
);
$config = $this->getOptions();
$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
':agency.' . $config['siteUri'],
NULL,
array(
'agency' => '([a-z0-9]+)'
)
);
$router->addRoute('subdomain', $hostnameRoute->chain($plainPathRoute));
parent::run();
}
路由器,是的,我有$配置[ 'siteUri']定義的,我也嘗試使用:agency.domain.com再次得到了同樣的問題
好像我們需要檢查您正在使用的路線。 – 2011-03-03 14:17:06
請創建答案,而不是回答答案中的問題。詳細一點。 – markus 2011-03-04 08:34:54