我在doc之后阅读了有关子域的内容。
我的控制器文件夹结构为:
所有路由都在控制器文件中带有注释定义。
例如:
#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
我想要的是:
bin /控制台服务器:启动
结果除外:
访问http://admin.localhost/ => src / Controller / Admin / HomeController中的homepage方法
访问http://localhost/ => src / Controller / Main / HomeController中的homepage方法
但是只有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。
答案 0 :(得分:1)
我通过使用此命令行进行调试
php bin /控制台调试:路由器
由于名字相同,只有最后一个读过:
@Route("/", name="home")
我只是将Admin的名称更改为
@Route("/", name="admin-home")
现在可以使用