2010-09-14 42 views
5

ứng dụng symfony tôi sẽ nhận được ngôn ngữ của người dùng từ tên miền phụ:symfony chọn dựa trên tên miền phụ

en.project.com - cho tiếng anh fr.project.com - cho Pháp

và vân vân ... Bộ lọc đặc biệt nhận 'GET' param 'lang' từ uri hiện tại và lưu nó vào thuộc tính người dùng. Làm cách nào tôi có thể thiết lập cấu hình máy chủ ảo apache cho nhiều tên miền phụ?

+0

Cà phê của tôi phải nóng, nhưng thay vào đó là ấm áp .. –

Trả lời

0

Bạn sẽ chỉ cần viết lại tên miền ký tự đại diện bằng cách sử dụng mod_rewrite và khi bạn sẽ có tên miền phụ làm thông số, bạn có thể tiếp tục.

http://www.easymodrewrite.com/example-subdomains

0

Cố gắng thêm chúng như ServerAlias trong tập tin cấu hình httpd của bạn.

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

Đọc thêm về bí danh server: http://httpd.apache.org/docs/2.0/en/mod/core.html#serveralias

lọc Symfony bạn chỉ có thể phân tích các tên miền trong yêu cầu đầu tiên và thiết lập một biến phiên. Điều này chưa được kiểm tra nhưng phải hoạt động:

<?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(); 
    } 
} ?> 
Các vấn đề liên quan