Symfony 2.2 app.php перенаправляет на локальный корень

Я разрабатываю проекты Symfony2 на Mac OSX Mountain Lion. Я начал новый проект с последней версии 2.2.1. В среде разработки все работает нормально, но когда я хочу протестировать рабочую среду с помощью app.php, она автоматически перенаправляет меня на http://localhost и отображает страницу по умолчанию «Это работает!».

Другие мои проекты, которые все еще находятся в версии 2.1, прекрасно работают даже в среде prod. Я не делал ничего другого с этим проектом, и я не могу понять, как заставить его работать.

Все мои проекты находятся в отдельных папках в моем каталоге ~/Sites.


person Johann    schedule 14.04.2013    source источник
comment
Вы пробовали ./app/console --env=prod cache:clear? Если это не поможет, каков результат ./app/console router:debug -e=prod?   -  person k0pernikus    schedule 15.04.2013
comment
Да я пытался очистить кеш, даже вручную очистил, удалив все файлы в каталоге cache/prod, но ничего не меняется. Вот что roter:debug дает мне для продукта: Name Method Scheme Host Path bach_index ANY ANY ANY /index   -  person Johann    schedule 15.04.2013


Ответы (1)


Если вы прочитаете файл UPGRADE-2.2.md, вы найдете этот абзац:

Файл web/.htaccess был существенно улучшен для предотвращения дублирования содержимого с и без /app.php в URI. Это также улучшает функциональность при использовании псевдонимов Apache или когда mod_rewrite недоступен. Поэтому вы можете также обновить свой файл .htaccess.

Итак, если ваш старый URI для рабочей среды был: http://server.com/yourProyect/web/app.php/example, теперь будет: http://server.com/yourProyect/web/example.

Ваше здоровье!

person luisete89    schedule 18.04.2013
comment
Да, это работает для маршрутов с чем-то после части web/, например web/contact, но для домашней страницы без ничего после этого не работает. Если я закомментирую первые два правила в файле .htaccess, он будет работать с web/app.php/. Таким образом, есть два решения: добавить шаблон для индексного маршрута или префикс для всех маршрутов при разработке или отключить правила RewriteCond %{ENV:REDIRECT_STATUS} ^$ и RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]. - person Johann; 19.04.2013
comment
@jobou Я сделал тест без ничего после /web/, и он работает! Убедитесь, что у вас есть четко определенные маршруты, и попробуйте очистить кеш (console cache:clear или удалить все папки под yourProyectRoot\app\cache). Я сделал это, и это работает нормально. - person luisete89; 20.04.2013
comment
Да, я все это сделал, очистил кеш и проверил правильность маршрутов. У меня есть маршрут с pattern: / для индексной страницы, но если я попытаюсь получить доступ к /web/ с правилами .htaccess по умолчанию, я получу ошибку The requested URL /Users/Johann/Sites/Bach/web/app.php was not found on this server. (я удалил маршруты для AcmeDemoBundle). Я начинаю думать, что это может быть проблема с моим локальным веб-сервером, а не непосредственно с Symfony... - person Johann; 20.04.2013