如何为特定Symfony的路由创建Nginx的根?

时间:2019-09-18 09:07:21

标签: symfony nginx symfony4 nginx-location

当用户使用特定网址时,我正在尝试个性化特定路由。实际上,一个网站有两个域名。首先是法语,第二是荷兰语。因此,当用户使用第一个URL时,我希望照常显示/ public。但是,如果用户使用第二个URL,我想显示public / index.php / nl。但这是Symfony的(4+)路线。我为Nginx创建了两个配置文件。但是荷兰语配置向我显示/ public,而不向我显示/public/index.php/nl。我如何使用Nginx做到这一点。我希望它是不稳定的。

server {
    listen 80;
    server_name www.my-nl-site.be my-nl-site.be;
    root /var/www/html/mysite/public;
    index index.php/nl  

    location / {
            # try to serve file directly, fallback to index.php
            try_files $uri /index.php$is_args$args;
    }

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我找到了Symfony的解决方案。我另外创建了一个控制器。

class AppController extends AbstractController
{
    /**
     * @Route("/", name="root")
     */
    public function root(Request $request)
    {
        $request = Request::createFromGlobals();
        $myhost = $request->server->get('HTTP_HOST');

        if( $myhost == 'mywebsitenl.be'){
            $locale = 'nl';
        }else{
            $locale = 'fr';
        }

        return $this->redirectToRoute('home', ['_locale' => $locale]);
    }
}