Настройте symfony, чтобы не рассматривать вложенную папку как часть маршрута

gmponos спросил: 28 марта 2018 в 04:40 в: php

У меня есть сервер apache, а мои проекты находятся внутри /var/www/html/

Внутри я создал новый проект с использованием композитора, такого как composer create-project symfony/website-skeleton myproject.

Затем внутри моего проекта я выполнил команду composer require symfony/apache-pack, которая добавила файл .htaccess в папку public, содержащую по умолчанию .htaccess symfony.

Когда я обращался к своему серверу, например http://192.168.0.2/myproject, я получил список папок, который apache обслуживает, если он не находит файл index.php, потому что он обратился к папке Symfony по умолчанию в /var/www/html/myproject, а не в общей папке.

Итак, внутри папки /var/www/html/myproject, которая является проектом symfony, я добавил следующий файл .htaccess.

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /myproject/    RewriteRule    ^$    public/    [L]
    RewriteRule    (.*) public/$1    [L]
</IfModule>

Нет, когда я посещаю http://192.168.0.2/myproject, я получаю сообщение об ошибке No route found for "GET /myproject/", что означает, что symfony теперь рассматривает /myproject как часть маршрута.

Есть ли решение для этого. Я предложил решение, которое я получил от Symfony slack, было бы иметь проект внутри другой папки и символизировать только общую папку.

Что-то вроде:

lrwxrwxrwx 1 root root 59 gmponos 9 19:26 myproject -> /home/gmponos/Projects/myproject/public/

Это решение, но мне действительно нужно иметь весь проект под /var/www/html/, а не символизировать общую папку.

Также другое решение в соответствии с официальной документацией редактируя конфигурацию apache и меняя корень документа из / var / www / html / myproject в / var / www / html / myproject / public, но мне нужна конфигурация, чтобы остаться внутри проекта, а не изменять конфигурацию apache.

Есть ли какое-либо решение?

1 ответ

kasor ответил: 29 марта 2018 в 07:45

Есть ли какое-либо решение? Нет решения для того, что вы запрашиваете:

  1. У вас должны быть права на настройку Apache для настройки корневого каталога документа на либо:

    • / var / www / html / myproject,
    • , либо / var / www / html / myproject / public, и установите соответствующие права доступа в конфигурационном файле apache
  2. Поместить весь код в код в каталог / var / www / html и предоставить бесплатный удаленный доступ через Web (Apache) очень рискованно для производственных сред.

    литий> ол>