Установлен Laravel в подпапке, но на домашней странице отображается Index of

Я знаю, что есть много подобных сообщений, но после 3 часов исследований я все еще не могу найти решение. Надеюсь, кто-то может помочь.

Используемые технологии:

  • Апач/2.4.7 (Убунту)
  • Ларавель 5.4
  • PHP 7.0

/etc/apache2/site-enabled/000-default.conf

<VirtualHost *:80>
        ServerAdmin [email protected]
        Servername example.com
        DocumentRoot /var/www/html/example.com
        <Directory />
                Options +FollowSymLinks
                #AllowOverride None
                Require all granted
        </Directory>
        <Directory /var/www/html/example.com/>
                Options +Indexes +FollowSymLinks +MultiViews
                AllowOverride All
                Require all granted
        </Directory>

        <Directory "/var/www/html/example.com/parcgilley/public">
                Options Includes Indexes FollowSymLinks
                DirectoryIndex index.php
                Order allow,deny
                Allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI +MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    .......

Таким образом, корень документа находится в /var/www/html/example.com, а мой сайт laravel находится в /var/www/html/example.com/parcgilley. Я попытался настроить 000-default.conf так, чтобы мой сайт указывал на /var/www/html/example.com/parcgilley/public, но когда я перехожу на example.com/parcgilley, он показывает «Индекс /parcgilley». И когда я перехожу к http://www.example.com/parcgilley/public/ , Chrome показывает "Эта страница не работает".

Это мой файл public/.htaccess:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Это не оригинальный контент. Я следовал инструкциям Laravel, поэтому заменил источник кодом выше. .

Кроме того, я установил разрешения для корневой папки проекта /parcgilley и папки хранилища, но безрезультатно.

Я не знаю, нужно ли мне создавать файл .htaccess, чтобы указать на папку /public. Но я мало знаю о конфигурации apache.

Любое понимание будет оценено.

Отредактировано:

Также я использовал SSH и Git, чтобы отправить веб-сайт с моей локальной машины на сервер, с голым репозиторием, расположенным в /var/repo/site.git. Не знаю, относится ли это к делу.


person Joshua Leung    schedule 08.06.2017    source источник


Ответы (1)


Вы пытались отключить список каталогов через .htaccess?

Options -Indexes

Вот дополнительная информация: https://www.thesitewizard.com/apache/prevent-directory-listing-htaccess.shtml

person Martin Halla    schedule 07.02.2018