Удаление public
из URL-адреса в Laravel-приложении обычно требует изменения конфигурации веб-сервера, чтобы корневой каталог веб-сервера указывал на каталог public
вашего Laravel-приложения. Это позволяет обращаться к ресурсам приложения напрямую через корневой URL, без необходимости указывать public
в пути. Вот как это можно сделать для различных веб-серверов:
Apache
Если вы используете Apache, вы можете изменить конфигурацию виртуального хоста, чтобы указать каталог public
как корневой. Например, в файле конфигурации виртуального хоста:
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /path/to/your/laravel/app/public
<Directory /path/to/your/laravel/app/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Не забудьте перезапустить Apache после изменения конфигурации:
sudo service apache2 restart
Nginx
Для Nginx вы можете изменить конфигурацию сервера, чтобы указать каталог public
как корневой. Например, в файле конфигурации Nginx:
server {
listen 80;
server_name yourdomain.com;
root /path/to/your/laravel/app/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add-header X-Content-Type-Options nosniff;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
После изменения конфигурации не забудьте перезагрузить Nginx:
sudo service nginx restart
Использование .htaccess (для Apache)
Если вы не хотите или не можете изменить конфигурацию веб-сервера, вы можете использовать файл .htaccess
в корневом каталоге вашего Laravel-приложения для перенаправления запросов на каталог public
. Создайте файл .htaccess
с следующим содержимым:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Этот метод менее предпочтителен, так как он требует включения модуля mod_rewrite
и может не работать в некоторых конфигурациях сервера.
Заключение
Удаление public
из URL-адреса вашего Laravel-приложения улучшает его внешний вид и упрощает доступ к ресурсам. Однако, перед внесением изменений в конфигурацию веб-сервера убедитесь, что вы полностью понимаете последствия и что у вас есть резервная копия конфигурации.
0 комментариев