2011-10-01 84 views
0

我正在嘗試使用sfDomainRoutePlugin plugin創建一個包含子域的站點。我在Linux上使用SF版本1.4.12,使用Apache作爲Web服務器。與Symfony一起使用sfDomainRoutePlugin時出現'Server Not Found'錯誤

我下面的在線說明,並已創建以下路由文件:

homepage: 
    url:  /
    class:  sfDomainRoute 
    param:  { module: foo, action: index } 
    requirements: 
    sf_host: [portal.localhost] 

#Sample route limited to one subdomain 
blog: 
    url:  /
    class:  sfDomainRoute 
    param:  { module: foo, action: foo1 } 
    requirements: 
    sf_host: blog.portal.localhost 

#Sample route that will capture the subdomain name as a parameter 
user_page: 
    url:  /
    class:  sfDomainRoute 
    param:  { module: foo, action: foo2 } 

#Sample route that will not receive a subdomain and will default to www.greenanysite.com 
install: 
    url:   /install 
    class:  sfDomainRoute 
    param:  { module: foo, action: foo3 } 

我foo的模塊代碼所擁有的方法foo1和Foo2和foo3作爲存根功能實現,各自有各自的模板簡單地包含文本確認其執行方法(例如「富:: Foo1被稱爲」)等

index方法的模板(foo的模塊中)看起來像這樣:

<html> 
    <head><title>Test subdomains</title></head> 
    <body> 
    <ul> 
     <li><?php echo link_to('homepage', '@homepage'); ?></li> 
     <li><?php echo link_to('blog', '@blog'); ?></li> 
     <li><?php echo link_to('zzzrbyte', '@user_page?subdomain=zzzrbyte'); ?></li> 
     <li><?php echo link_to('install', '@install'); ?></li> 
    </ul> 
    </body> 
</html> 

網址正確生成(即與在修改routing.yml文件中指定的子域),但是當我點擊「博客」或「zzzrbyte」鏈接,我得到錯誤信息:「找不到服務器」

例如,我得到這個消息:

未找到服務器Firefox無法在 blog.portal.localhost上找到服務器。

AFAICT,我完全按照在線指示,所以我不能看到我的錯在哪裏。任何人都可以發現可能導致這個問題的原因嗎?

[更新]]

我才意識到,通過增加子域到我的hosts文件,這似乎擺脫了這個問題。我不確定這是修復還是臨時解決方法。如果這是做事的方法,我想知道爲什麼這樣一個重要的信息被排除在筆記之外?

如果這是讓事情發揮作用的方式,這意味着必須事先知道子域名(即不是動態生成並在運行時解析),還有 - 我不確定這樣的解決方案是如何工作的一臺遠程服務器,因爲我在一臺物理機器上運行多個網站(作爲虛擬服務器),並且我沒有在服務器上使用主機文件。

任何幫助將不勝感激。

回答

0

將子域添加到主機是解決此問題的正確方法

相關問題