与Symfony一起使用sfDomainRoutePlugin时出现'Server Not Found'错误
问题描述:
我正在尝试使用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文件,这似乎摆脱了这个问题。我不确定这是修复还是临时解决方法。如果这是做事的方法,我想知道为什么这样一个重要的信息被排除在笔记之外?
如果这是让事情发挥作用的方式,这意味着必须事先知道子域名(即不是动态生成并在运行时解析),还有 - 我不确定这样的解决方案是如何工作的一台远程服务器,因为我在一台物理机器上运行多个网站(作为虚拟服务器),并且我没有在服务器上使用主机文件。
任何帮助将不胜感激。
答
将子域添加到主机是解决此问题的正确方法