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;
|
return 404;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Запрет прямого доступа к storage (вне symlink public/storage)
|
# Разрешаем доступ к публичным файлам storage (через symlink public/storage)
|
||||||
location ~ ^/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;
|
deny all;
|
||||||
return 404;
|
return 404;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user