【发布时间】:2011-10-01 10:24:28
【问题描述】:
我正在尝试使用sfDomainRoutePlugin plugin 创建带有子域的站点。我在 Linux 上使用 SF 版本 1.4.12,使用 Apache 作为 Web 服务器。
我按照在线说明创建了以下路由文件:
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 方法实现为存根函数,并且每个都有自己的模板,其中仅包含确认执行了哪个方法的文本(例如,'foo::Foo1 被调用')等。
索引方法的模板(在 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>
正确生成了 URL(即使用 routing.yml 文件中指定的子域),但是当我单击“博客”或“zzzrbyte”链接时,我收到错误消息:'找不到服务器'
例如,我收到了这条消息:
找不到服务器 Firefox 找不到服务器 blog.portal.localhost。
AFAICT,我完全按照在线说明进行操作,所以我看不出哪里出错了。谁能发现可能导致此问题的原因?
[[更新]]
我刚刚意识到通过将子域添加到我的主机文件中,这似乎可以解决问题。我不确定这是修复还是只是临时解决方法。如果这是做事的方式,我想知道为什么在笔记中遗漏了如此重要的信息?
如果这是让事情发挥作用的方式,则意味着必须事先知道子域(即,不动态生成并在运行时解析),而且 - 我不确定这样的解决方案如何适用于远程服务器,因为我在一台物理机器上运行多个网站(作为虚拟服务器)并且我没有在服务器上使用主机文件。
任何帮助将不胜感激。
【问题讨论】:
标签: apache symfony1 symfony-1.4