fix(nginx): разрешить доступ к публичным файлам storage через symlink
Проблема: Правило 'location ~ ^/storage/ { deny all; }' блокировало
ВСЕ запросы к /storage/, включая файлы доступные через symlink
public/storage -> storage/app/public.
Решение:
- location /storage/ — разрешает доступ к статическим файлам (изображения, документы)
- Запрещает выполнение .php файлов в storage (security)
- try_files $uri =404 — отдаёт файлы если они существуют
- Запрещает листинг директорий (autoindex off)
Fix: Изображения новостей не загружались (404 ошибка)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@@ -108,8 +108,24 @@ server {
|
||||
return 404;
|
||||
}
|
||||
|
||||
# Запрет прямого доступа к storage (вне symlink public/storage)
|
||||
location ~ ^/storage/ {
|
||||
# Разрешаем доступ к публичным файлам storage (через symlink public/storage)
|
||||
# Это должны быть ТОЛЬКО изображения, документы и т.д. — НЕ PHP файлы
|
||||
location /storage/ {
|
||||
# Запрещаем выполнение PHP файлов в storage
|
||||
location ~ \.php$ {
|
||||
deny all;
|
||||
return 404;
|
||||
}
|
||||
|
||||
# Разрешаем доступ к статическим файлам
|
||||
try_files $uri =404;
|
||||
|
||||
# Запрещаем листинг директорий
|
||||
autoindex off;
|
||||
}
|
||||
|
||||
# Запрет прямого доступа к internal storage paths (в обход symlink)
|
||||
location ~ ^/storage/app/(?!public) {
|
||||
deny all;
|
||||
return 404;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user