我正在尝试在zf2中使用子域路由,但是获取dns错误。我添加了这样的路线:
'testSubDomain' => array(
'type' => 'Hostname',
'options' => array(
'route' => ':blog.mydomain.net',
),
'may_terminate' => false,
'child_routes' => array(
'home' => array(
'type' => 'Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Solution',
'action' => 'testSubdomain'
)
)
)
)
),
我创建了apache vhost,并且/etc/apache2/sites-enabled/000-default.conf的配置如下:
<VirtualHost *:80>
ServerName mydomain.net
ServerAlias mydomain.net
DocumentRoot /var/www/beta/public
<directory /var/www/beta/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</directory>
<Directory /var/www/beta/public>
Options -Indexes
Require all granted
</Directory>
</VirtualHost>
----------
Some other vhost
-----------
当我访问blog.mydomain.net时,显示无法找到服务器DNS地址。我还没有在000-default.conf中定义任何vhost for subdmoain所以它应该使用第一个。我还为子域添加了一条A记录,但它也无效。
答案 0 :(得分:2)
此问题中发布的解决方案是正确的,有些事情需要牢记。不要为您的子域创建Vhost,但您的子域应该指向serer。如果为子域创建vhost,则它将遵循appplication模块配置路由并显示主页。
'testSubDomain' => array(
'type' => 'Hostname',
'options' => array(
'route' => 'blog.mydomain.net',
),
'may_terminate' => false,
'child_routes' => array(
'home' => array(
'type' => 'Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Solution',
'action' => 'testSubdomain'
)
)
)
)
),
当你去blog.mydomain.net时,它会显示testSubdomain函数的内容。 无需为子域创建任何vhost。