如何使用内置的Web服务器在Symfony 4中运行子域?

时间:2019-02-04 17:35:03

标签: symfony

我在doc之后阅读了有关子域的内容。

我的控制器文件夹结构为:

  • src / Controller / Admin
  • src / Controller / Main

所有路由都在控制器文件中带有注释定义。

例如:

#src/Controller/Admin/HomeController.php
class HomeController extends AbstractController
{
    /**
     * @Route("/", name="home")
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function homepage(){...}
}

#src/Controller/Main/HomeController.php
class HomeController extends AbstractController
{
    /**
     * @Route("/", name="home")
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function homepage(){...}
}

所以我将以下配置添加到config / routes.yaml文件中:

#config/routes.yaml
main:
    host: "localhost"
    resource: ../src/Controller/Main
    type: annotation
admin:
    host: "admin.localhost"
    resource: ../src/Controller/Admin
    type: annotation

我想要的是:

  1. 我使用以下命令运行服务器:
  

bin /控制台服务器:启动

  1. 结果除外:

但是只有http://admin.localhost/可以工作,并且http://localhost/收到404并显示以下消息:“欢迎使用Symfony 4.2.2”

如果我在yaml文件中交换了订单:

#config/routes.yaml
admin:
    host: "admin.localhost"
    resource: ../src/Controller/Admin
    type: annotation
main:
    host: "localhost"
    resource: ../src/Controller/Main
    type: annotation

http://localhost/有效,http://admin.localhost/得到404的欢迎消息

如何使用subdomain运行built-in web server

1 个答案:

答案 0 :(得分:1)

我通过使用此命令行进行调试

  

php bin /控制台调试:路由器

由于名字相同,只有最后一个读过:

@Route("/", name="home")

我只是将Admin的名称更改为

@Route("/", name="admin-home")

现在可以使用