Я пытаюсь создать сайт с поддоменами, используя плагин sfDomainRoutePlugin . Я использую SF версии 1.4.12 в Linux с Apache в качестве веб-сервера.
Я следую онлайн-инструкциям и создал следующий файл маршрутизации:
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 был вызван') и т. Д.
Шаблон для метода 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>
URL-адреса генерируются правильно (то есть с поддоменами, как указано в файле routing.yml), однако, когда я нажимаю ссылку «блог» или «zzzrbyte», я получаю сообщение об ошибке: 'Сервер не найден «
Например, я получил это сообщение:
Сервер не найден Firefox не может найти сервер в
blog.portal.localhost.
AFAICT, я точно следую онлайн-инструкциям, поэтому не могу понять, в чем дело. Может кто-нибудь определить, что может быть причиной этой проблемы?
[[UPDATE]]
Я только что понял, что, добавив поддомен в мой файл hosts, похоже, это избавило от проблемы. Я не уверен, если это исправление или просто временное решение. Если это способ сделать что-то, я задаюсь вопросом, почему такая важная информация была оставлена в записках?
Если это способ заставить вещи работать, это означает, что субдомены должны быть известны заранее (т.е. не генерироваться динамически и не разрешаться во время выполнения), также - я не уверен, как такое решение работает для удаленный сервер, так как я использую несколько веб-сайтов (в качестве виртуальных серверов) на одной физической машине и не использую файл hosts на сервере.
Любая помощь будет высоко ценится.