2013-09-29 2 views
0

У меня есть 3 приложения symfony2, 2 работает нормально, но третий работает только для страницы по умолчанию. Остальные маршруты вызывают ошибку 404. Окружающая среда: Ubunto 12.04 VirtualBox, apache 2, php 5.3.10, Mongobd.Ошибка 404 на Symfony2

Это де содержание ВХост:

<VirtualHost *:80> 
    DocumentRoot /home/adminuser/webs/servergrove/web 
    ServerName servergrove.local 
    ErrorLog /var/log/apache2/servergrove-error.log 
    CustomLog /var/log/apache2/servergrove-access.log combined 
    <Directory /home/adminuser/webs/servergrove/web> 
     AllowOverride All 
    </Directory> 
</VirtualHost> 

Это routing.yml:

homepage: 
    pattern:/
    defaults: { _controller: SGLiveChatBundle:Default:index } 

sglc_chat_homepage: 
    pattern: /sglivechat 
    defaults: { _controller: SGLiveChatBundle:Chat:index } 

sglc_chat_invite: 
    pattern: /sglivechat/{sessId}/invite 
    defaults: { _controller: SGLiveChatBundle:Chat:invite } 

... и так далее.

Следующая URL работает отлично: http://servergrove.local/

Следующая (и любой другой) не делает: http://servergrove.local/sglivechat

*Not Found 
The requested URL /sglivechat was not found on this server. 
Apache/2.2.22 (Ubuntu) Server at servergrove.local Port 80* 

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

У меня есть что-то вроде этого в командной строке:

adminuser @ adminuser-VirtualBox-073n: ~/холсты/servergrove $ PHP приложение/консоли маршрутизатора: отладки

[router] Current routes 
    Name Method Pattern 
    homepage   ANY /
    sglc_admin_index GET /admin/sglivechat 
    prueba   ANY /prueba 

adminuser @ adminuser-VirtualBox-073n: ~/холсты/servergrove $ PHP приложение/консоли маршрутизатора: дамп-апаш

RewriteCond %{PATH_INFO} ^/$ 
RewriteRule .* app.php [QSA,L,E=_ROUTING__route:homepage,E=_ROUTING__controller:ServerGrove\SGLiveChatBundle\Controller\DefaultController::indexAction] 

RewriteCond %{REQUEST_METHOD} ^(get) [NC] 
RewriteCond %{PATH_INFO} ^/admin/sglivechat$ 
RewriteRule .* app.php [QSA,L,E=_ROUTING__route:sglc_admin_index,E=_ROUTING__controller:ServerGrove\SGLiveChatBundle\Controller\AdminController::indexAction] 

RewriteCond %{PATH_INFO} ^/prueba$ 
RewriteRule .* app.php [QSA,L,E=_ROUTING__route:prueba,E=_ROUTING__controller:ServerGrove\SGLiveChatBundle\Controller\DefaultController::pruebaAction] 

Любая идея, что может быть не так?

+0

В начале appKernel.php я добавил: die ('aaaa') ;, если я просматриваю http: //servergrove.local/ Я вижу aaaa, но в любом другом url я вижу ту же ошибку 404 , –

+1

Ваш '.htaccess' выглядит« ужасно »: - | Вы пытались восстановить его по умолчанию? –

+0

Ваше приложение не пересматривает ваши маршруты, как вы можете видеть, когда вы запускаете команду 'php app/console router: debug'. Это может быть по разным причинам, но с информацией, которую вы нам даете, трудно понять. Единственное, что я могу вам сказать, это не проблема Apache, поскольку маршруты не сбрасываются. Не могли бы вы разместить файл 'routing.yml', расположенный в папке'/app/config'? –

ответ

0

Вы сказали, что маршрут отлично работает с app_dev.php; поэтому проблема может быть исправлена ​​следующим образом:

  • Проверьте, есть ли файл .htaccess в веб-каталоге.
  • Убедитесь, что ваш сервер Apache имеет модуль mod_rewrite.
  • Стереть кеш в среде prod.
+0

Спасибо, Наконец, через пару часов, просмотрев файл htaccess, я получил короткие URL-адреса. –

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