如何创建一个 Nginx 的根到一个特定的 Symfony 的路由?
How to create a Nginx's root to a specific Symfony's route?
我正在尝试在用户使用特定 url 时个性化特定路线。实际上,我一个网站有两个域名。第一个是法语,第二个是荷兰语。所以当用户第一次使用 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;
}
有人可以帮助我吗?
我找到了 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]);
}
}
我正在尝试在用户使用特定 url 时个性化特定路线。实际上,我一个网站有两个域名。第一个是法语,第二个是荷兰语。所以当用户第一次使用 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;
}
有人可以帮助我吗?
我找到了 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]);
}
}