Если вы используете сервер Apache, то в корне проекта создайте файл без имени с расширением .htaccess и со следующим содержимым:
RewriteEngine On RewriteRule ^(.*)$ public/$1 [L]
Если вы используете сервер Nginx, воспользуйтесь следующим конфигурационным файлом:
server { listen 80 default_server; listen [::]:80 default_server; # Log files for Debugging access_log /var/log/nginx/laravel-access.log; error_log /var/log/nginx/laravel-error.log; # Webroot Directory for Laravel project root /var/www/laravel/public; index index.php index.html index.htm; # Your Domain Name server_name localhost; location / { try_files $uri $uri/ /index.php?$query_string; } # PHP-FPM Configuration Nginx location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_read_timeout 1500000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Таким образом мы перевели все запросы клиента в папку public и закрыли доступ ко всем остальным папкам проекта.
Однако, Laravel содержит свой встренный сервер, и мы можем запустить проект без Apache, Nginx или других сторонних серверов.
php artisan serve
Практика