Допустим, есть домен my-laravel-app.ru
Нужно разместить сайт на laravel так, чтобы он был доступен по URL my-laravel-app.ru/laravel/
Структура папок:
public_html
-- laravel
---- public
---- app
---- .htaccess
---- ...
В public_html/laravel/.htaccess указываю:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
В public_html/laravel/public/.htaccess указываю:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /laravel/
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
При обращении к my-laravel-app.ru/laravel/ получаю 404 ошибку от laravel (стилизованную, которую отдает именно laravel, а не веб-сервер). Будто бы laravel не может разобраться с роутами по какой-то причине.
При размещении всех файлов laravel в public_html сайт корректно открывается через my-laravel-app.ru