Публичный URI автоматически появляется в URL Laravel

Я использую виртуальный хостинг для хостинга приложения laravel. Я использовал файл.htaccess, чтобы перенаправить запрос в общую папку.

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ 
RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule ^(.*)$ /public/$1 
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ 
RewriteRule ^(/)?$ public/index.php[L]

Маршрутизация Laravel работает отлично, но когда я пытаюсь запросить папку внутри публичной папки непосредственно из URL, автоматически появляется публичный URI

Например: когда я пишу "www.domain.com/Uploads", URL автоматически становится "www.domain.com/public/Uploads"

1 ответ

Вам не нужно использовать htacess для доступа к вашим файлам. Лучший способ сделать это - построить маршрут, который выберет нужный вам файл и представит его вам.

Допустим, URL-адрес

project.dev/images/image.jpg

При построении маршрута, подобного этому, вы получите нужный файл

Route::get('/images/{name}', function($name) {
    $file = Storage::get('images/'.$name);

    return response($file, 200, [
        'Content-Type' => 'Content-Type: image/png'
    ]);
});
Другие вопросы по тегам