Я не могу найти никакой информации о выполнении установки Laravel в подпапке.
Возможно ли это сделать? Или это требование Laravel должно быть установлено на корневом уровне?
Мой хостинг-провайдер не позволяет мне создавать VirtualHosts, и мне нужно установить приложение Laravel вместе с тем, что сейчас там …
UDPATE: получается, что это в основном проблема .htaccess:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
Во-первых, учтите, что этот ответ заключается только в том, чтобы заставить его работать, я не уверен в каких-либо последствиях, которые могут иметь в безопасности из-за того, что каждая папка находится в общедоступной части вашего сайта.
Во-вторых, я просто попробовал это с помощью установки barebones laravel, поэтому я не уверен, что это может иметь последствия позже в разработке (я думаю, что нет, но вы никогда не знаете).
1) Скопируйте все содержимое общей папки в корневую папку laravel (которая является вашей подпапкой)
2) Теперь вы можете удалить пустую public
папку
3) отредактировать index.php
и изменить
// -------------------------------------------------------------- // Set the core Laravel path constants. // -------------------------------------------------------------- require '../paths.php';
в
// -------------------------------------------------------------- // Set the core Laravel path constants. // -------------------------------------------------------------- require './paths.php';
4) отредактировать paths.php и изменить
// -------------------------------------------------------------- // The path to the public directory. // -------------------------------------------------------------- $paths['public'] = 'public';
в
// -------------------------------------------------------------- // The path to the public directory. // -------------------------------------------------------------- $paths['public'] = '.';
5) Отредактируйте файл .htaccess в папке laravel, чтобы он перенаправлял больше не публично
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>