[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: .htaccess для symfony
Bolik
привет.

сейчас я работаю над проектом на symfony. выгружаю его на сервер (шаред хостинг) в папку при помощи magallanez. в принципе удобно, можно всегда сделать откат к предыдущей версии, деплоймент делается одним кликом.

Но есть проблема с .htaccess

сейчас проект доступен по адресу domain/project/current/web

current тут это алиас на актуальный релиз.

хотелось бы, чтоб проект можно было запускать domain/project или project.domain.tld, как у нормальных людей. плюс из-за этих алиасов начинаются танцы с бубном, когда нужно подгрузить изображения, .css, .js, но это нужно покопать симфони наверное.

в папке веб лежит такой .htaccess (тот, что с симфони стандартно приходит)


DirectoryIndex app.php

<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

<IfModule
mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule
!mod_rewrite.c>
<IfModule
mod_alias.c>
RedirectMatch 302 ^/$ /app.php/
</IfModule>
</IfModule>



что тут нужно переделать, чтоб проект был доступен по нормальному адресу?
icedfox
Здесь два варианта:
1. поправить конфиг виртуального хоста на сервере. указав рут директорию до /project/current/web
2. положить в корень сайта .htaccess
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !^project/current/web
RewriteRule ^(.*)$ project/current/web/$1 [L]
bestxp
Bolik

смотри конфигурацию своего деплой скрипта, в случае capifony который юзаю например я, общие папки указываются отдельно, те в которые например будут загружаться файлы и тд что бы их не удалили и не выпилили из симлинков, 100% у тебя есть такое же, и да Symfony куда лучше живет под php-fpm + nginx и в плане деплоя тоже

Bolik
первый вариант вообще отпадает, на сервере править ничего не выйдет.

второй сейчас поробую. т.е. старый .htaccess пока выбросить?
Bolik
bestxp

спасибо за совет, доки еще раз посмотрю, но я почти уверен, что там ничего про общие папки не было.

на счет php-fpm + nginx тоже интересно. но пока это не актуально. для меня на этом сервере ничего устанавливать не будут. когда дело дойдет до переезда на железо посерьезнее, тогда буду думать.
bestxp
Либо посмотри в сторону capifony на сервере не надо юзать
Bolik
с вторым вариантом от icedfox по адресу domain/project статус 403, а по старому с current/web прилетает 500
icedfox
сверь пути
Bolik
icedfox

все равно не работает. в логах была ошибка связанная с фавиконом, но я ее уже устранил. больше никаких ошибок там нет....
icedfox
Так. Верни все как было, и напиши, по какому url у тебя открывается нормально.
Bolik
domain.tld/project/current/web так открывается все отлично.
VELIK505
рут дирректорию на сервере правильно сказали.
Непонимаю зачем всё это баламутство есть ли есть хоть минималистические опыт в ОС даже если его нет 2дня максимум хватит для начальных знаних для мелких задач и можно брать хотябы самый дешевый VPS от 120р в месяц это чуть больше 1$ чё смеяться. Зачем мучаться вообще с вирт хостами? больше движений делайте.
насчёт php-fpm всё просто делаеться в nginx конфиге сайта
location ~* ^/(includes|cache|myclass/classadw/classadv|funciones.php|)($|\/) {deny all;}
всё закрыл тот же deny from all как на апаче (но такого лучше вообще не допускать в нормальной архитектуре в директории сайта ничего не должно лежать в пределах фтп всё это дело должно лежать за пределами фтп.
ну а оптионс индексес он итак отдаст 403 если укажешь try_files $uri =404; в location ~ \.php$
забанить переход с определнного сайта
if ($http_referer ~* "gavnosite\.ru") {
return 301;
}
редирект с ввв на без ввв
if ($http_host !~ "^mysite.com$"){
rewrite ^(.*)$ http://mysite.com$1 redirect;
}
htpasswd это есть ngx_http_auth_basic_module (auth_basic/auth_basic_user_file)
ошибки указывать так же в директории server
error_page 403 400 404 = http://mysite.com/404.html;

Ну а так да твоя проблема через рут дирректорию решается за 1 минуту. Никогда не используйте apache и вирт хосты. через пару лет ваши сайты/проекты/сервера невозможно уже будет поддерживать. Хотя уже и сейчас невозможно. На этом далеко не уедешь я ещё наверное лет 6 назад как шагнул в веб взял себе вирт хост уже через месяц понял что это баламутсво и ничего не посмотришь не поделаешь на нём полезного и купил себе первый впс. Непонимаю как некоторые годами веб-ом занимаються и дальше ничего вирт хоста не видили. 30% тем/вопросов связаны с вирт хостами как то да сё поменять. Тут ты сидишь паришься несколько часов рядом в теме у человека кеш не сбрасывается верстать не может. Ну бред же чистой воды.
Bolik
VELIK505

спасибо ) до этого времени вирт хостом пользовался как флешкой, сейчас начал писать проект и пока что пользуюсь хостом как песочницей, чтоб посмотреть как будет на продакшене. плюс учусь делать деплоймент симфони т.к. никогда с этим пока не сталкивался. когда дойдет до боевого тестирования, перееду конечно же vps.

с .htaccess понял пока только одно: пользоваться нужно тем, что пришло с симфони. а урлы как в моем случае нужно править через рут директорию, что и успешно практикуется на локальном вебсервере smile.gif в саппорте мне ответили, что у них нет возможности (желания) настраивать для меня vhosts, за что я им пожелал долго жить. хорошо, что хотя бы ssh есть...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.