2016-02-20 2 views
0

Веб-приложение, разработанное на локальном апаче (на Centos), работает по назначению, и вся маршрутизация работает нормально. Однако, при загрузке же идентичный проект на общем хостинге, используя тот же путь, и очистить кэш несколько раз, сервер возвращает 404.Symfony2 на общедоступном хостинге, возвращающем 404

routing.yml:

app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 

maya: 
    resource: "@AppBundle/Controller/MayaController.php" 
    type:  annotation 

Кроме того, маршрутизация указано на методе контроллера, как:

/** 
* @Route("/maya/") 
*/ 
public function initLoad() 
{ 
    return $this->render(
     'base.html.twig'); 
} 

Cache был очищен с помощью команды php app/console cache:clear --env prod и rm -fr app/cache/*.

При доступе к веб-папке, т.е. www.mywebsite.com/my-site-folder/web/, список всех файлов внутри веб-папки указан и при доступе к www.mywebsite.com/my-site-folder /web/app.php возвращается базовый шаблон, т. е. как если бы вызывается www.mywebsite.com/my-site-folder/web/maya.

Любые предложения по поводу того, что может быть задано, хорошо работают на локальном сервере Apache на Linux?

Заранее благодарен!

+0

Кроме того, иногда, когда я очищаю кеш-ошибка: Неустранимая ошибка: не удается переопределить класс SessionHandlerInterface в /home/mywebsite/app/cache/prod/classes.php в строке 71 Это исправлено, запустив rm -fr для папки кэша. Это может быть несоответствие версии PHP? Я использую symfony 2.8 – William

+0

Попробуйте это '@Route ("/maya/")' to '@Route ("/maya ")' –

+0

Работает, когда apppp добавляется в URL-адрес, например: www.mywebsite.com/my -site-folder/web/app.php/maya работает по назначению. Тем не менее, мне кажется странным, почему app.php требуется, а локально на моем apache - нет. Локально apache работал в режиме prod. Благодаря! – William

ответ

0

После просмотра комментариев, я вижу, что доступ к вашему сайту через /web/app.php работает, я подозреваю, что .htaccess не анализируется сервером. Отвод обеспечить

  • файл .htaccess Symfony является правильно загружен в/Web/каталоге,
  • вашего хост не включен .htaccess поддержки,
  • или если .htaccess включена поддержка, возможные правила перезаписи отключены.

Предлагаю вам проверить это на своем хосте.

Примечание: routing.yml вы предоставили, уже включает в свой MayaController.php:

app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 

Вам не нужно отдельно ссылаться на этот:

maya: 
    resource: "@AppBundle/Controller/MayaController.php" 
    type:  annotation 
+0

Просто нашёл ответ здесь: http://stackoverflow.com/questions/16689822/symfony-htaccess-to-hide-app-php-or-app-dev-php. Спасибо, что указал на правильное направление! – William

+0

@William без проблем! из любопытства, '.htaccess' не существовало в вашем дистрибутиве symfony? –

+0

nope.Я использовал установщик symfony, создав версию проекта 2.8 – William

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