2013-04-14 4 views
0

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

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

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

+0

Пробовал ли вы. ./app/console --env = prod cache: clear'? Если это не помогает, каков вывод './app/console router: debug -e = prod'? – k0pernikus

+0

Да Я попытался очистить кеш, я даже очистил его вручную, удалив все файлы в каталоге cache/prod, но ничего не меняется. Вот что «roter: debug» дает мне для prod: 'Метод метода имени Путь к хосту bach_index ЛЮБОЙ ЛЮБОЙ ЛЮБОЙ/index' – Johann

ответ

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.

Cheers!

+0

Да, он работает для маршрутов с чем-то после' web/'part, например' web/contact', но для домашней страницы ничего нет после того, как она не работает. Если я комментирую первые два правила в файле .htaccess, он работает с 'web/app.php /'. Таким образом, существует два решения: добавление шаблона для маршрута индекса или префикса для всех маршрутов при разработке или отключении правил 'RewriteCond% {ENV: REDIRECT_STATUS}^$ и' RewriteRule^app \ .php (/(.*) | $)% {CONTEXT_PREFIX}/$ 2 [R = 301, L] ' – Johann

+1

@jobou Я ничего не проверил после'/web/'и работает! Убедитесь, что у вас есть четко определенные маршруты и попробуйте очистить кеш ('console cache: clear' или удалить все папки под' yourProyectRoot \ app \ cache'). Я сделал это, и все работает отлично. – luisete89

+0

Да, я сделал все это, очистил кеш и проверил, что мои маршруты правильные. У меня есть маршрут с 'pattern: /' для индексной страницы, но если я попытаюсь получить доступ к '/ web /' с правилами по умолчанию .htaccess, я получаю сообщение об ошибке 'Запрошенный URL/Users/Johann/Sites/Bach /web/app.php не найден на этом сервере. '(Я удалил маршруты для AcmeDemoBundle). Я начинаю думать, что это может быть проблема с моим локальным веб-сервером, а не напрямую с Symfony ... – Johann

Смежные вопросы