Чат Telegram
Группа ВКонтакте
Новый комментарий


prognoz

У меня вопрос, как сайт с подобной архитектурой загрузить на сервер провайдера? Допустим, тот же beget. Ничего не получается.
Там все грузится в папку public_html.
Вопрос, как переадресовать запрос в папку www.
Все что пишу в public_html/.htaccess не работает.
Варианты такие:
DirectoryIndex /web/index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) $1 [L]
RewriteCond %{DOCUMENT_ROOT}/web%{REQUEST_URI} -f
RewriteRule ^(.+) /web/$1 [L]

Не работает. Что делать?

ivashkevich

Просто переименовать www в public_html. Вся остальная структура не изменится.

prognoz

Если на OpenServer поменять название папки www на public_html, то все работает.

На хостинге ничего не работает.
Структура там такая prognoex.beget.tech и в нем папка public_html
Грузим наш проект в папку prognoex.beget.tech
Наша структура папок:
src
templates
public_html (бывший www)

В итоге ошибка 500.

Служба поддержки пишет следующее:
Здравствуйте!
Насколько я вижу, проблема возникает из-за некорректной работы php-скрипта. Прикладываю фрагмент лога ошибок:
[31-Aug-2019 23:05:33 Europe/Moscow] PHP Notice: Undefined index: route in /home/p/prognoex/prognoex.beget.tech/public_html/index.php on line 11

Что не так с путями? Подскажите, пожалуйста.

ivashkevich

.htaccess загрузил хоть?) Если проблема не в этом, напиши в личку в ВК или в телеге.

V0yager

Подскажите пожалуйста, где обрабатывать исключения при добавлении комментария?

Роут для страницы добавления коммента: /articles/1/comments/add
Контроллер: ArticlesController
Экшн: addComment

Просто получается так, что в случае возникновения ошибки, надо открывать страницу со статьёй, но добавляя туда переменную с этой ошибкой.
Была мысль записать в массив свойств view ($this->view->setVar('error', $excep->getMessage())), и уже при рендеринге страницы со статьёй вывести ошибку, но мне показалось, что это бредовато.

ivashkevich

Да нет, вполне рабочее решение. В реальных проектах запрос отправляется через js на отдельный роут и если возвращается ошибка, то всплывает окошечко с ошибкой. Но здесь в учебном примере будет нормально так как ты предложил.

Онлайн-курсы PHP и MySQL
Обучение с полного нуля до уровня джуниора!
Начать бесплатно
Логические задачи с собеседований