Как развернуть Symfony2 на общем хостинге?

Я хочу получить доступ к моему приложению symfony в production env (http://www.sample.com/amateur1/web/app.php) из этого url http://www.sample.com/amateur1.

для этого я переехал .htacces файл вhttp://www.sample.com/amateur1/.htaccess с этим содержанием:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /web/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

но когда я приезжаю в http://www.sample.com/amateur1 показывает сообщение об ошибке 404, и prod.log не написано.

I также используется RewriteBase /amateur1/web/ потому что я не знаю, если RewriteBase путь относительно DocumentRoot сервера, или из Пути, где .реврайт есть. Также пробовал /amateur1 и /amateur1/ как переписать базу из-за этого ответа Symfony2: как развернуть в подкаталоге (Apache)

С тремя попытками страница исключений отображается без изменений и не загружает изображение. Но затем я получаю следующую ошибку в подгонять.файл журнала:

[2013-02-15 02:06:47] request.ERROR: SymfonyComponentHttpKernelExceptionNotFoundHttpException: No route found for "GET /amateur1/" (uncaught exception) at /home/u105859802/public_html/amateur1/app/cache/prod/classes.php line 5121 [] []

что я делаю не так ?

2 ответов


в вашей конфигурации apache использует public_html как корень документа

если Symfony2 установлен в каталоге /home/u105859802/public_html/amateur1, общий каталог Symfony для обслуживания -/home/u105859802/public_html/amateur1/web/

вы должны использовать

RewriteBase /amateur1/web/

но будьте осторожны, это не безопасно
вы должны защитить свои каталоги symfony! (настройка доступна)

почему бы вам не попробовать переместить файлы symfony в свою личную область ?
Вы можете переименуйте веб-каталог Symfony в public_html

посмотреть как это сделать в документации cookbook

Итак, моя структура рекомендаций выглядит следующим образом:

  • /главная/u105859802/
    • продавец
    • src
    • app
    • bin
    • public_html (web по умолчанию в symfony2)

в большинстве общих хостингов вы не можете переопределить настройки Apache, в этом случае может потребоваться ввести правило перенаправления .htaccess файл

Options +FollowSymLinks +ExecCGI

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteRule !^projectName/ /projectName/web/app.php/%{REQUEST_URI} [L,NC]

это правило, которое я использовал в своем проекте . Вам может потребоваться предоставить полные пути к вашим активам другими способами, которыми они не будут загружены .