基于子域名的Symfony语言选择

5
我的Symfony应用程序应该从子域名中获取用户的语言:
en.project.com - 英语 fr.project.com - 法语
等等... 特殊过滤器从当前URI获取“GET”参数“lang”,并将其保存在用户属性中。 我如何设置Apache虚拟主机配置以处理多个子域名?

我的咖啡应该是热的,但现在只有微温。 - Dennis Haarbrink
3个回答

2
<VirtualHost *:80>
ServerName blah.com
ServerAlias de.blah.com en.blah.com fr.blah.com
...
</VirtualHost>

了解更多有关服务器别名的信息:http://httpd.apache.org/docs/2.0/en/mod/core.html#serveralias

您的Symfony过滤器可以在第一次请求期间简单地解析域并设置会话变量。以下是未经测试但应该有效的代码:

<?php class localeFilter extends sfFilter
{
  public function execute($filterChain)
  {
    // Execute this filter only once
    if ($this->isFirstCall()) {
      $host = $_REQUEST['HTTP_HOST'];
      $locale = array_shift(explode(".",$host));
      $this->getUser()->setAttribute('locale', $locale);
    }

    // Execute next filter
    $filterChain->execute();
  }
} ?>

0

0

尝试在您的httpd配置文件中将它们添加为ServerAlias


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接