Tôi gặp sự cố với cài đặt NGINX của mình khi chuyển hướng đến trang lỗi tùy chỉnh ở một vị trí khác (bao gồm css, hình ảnh, js) nếu một trang lỗi bị ném.
Lúc đầu, tôi muốn chặn quyền truy cập vào một thư mục (như .git
). Điều này có thể dễ dàng thực hiện thông qua (bên trong khối máy chủ)
vị trí ~ /(.git) {
Phủ nhận tất cả;
trả lại 404;
}
Sau đó, tôi đã tạo một phần tử error_page tùy chỉnh (bên trong khối máy chủ) với tệp 404.html tùy chỉnh ở một vị trí khác với thư mục gốc của trang web.
lỗi_trang 404 /404.html;
vị trí = /404.html {
root /var/data/trang web/trang lỗi;
nội bộ;
}
Sau những thay đổi này, trang 404 tùy chỉnh của tôi sẽ được hiển thị - nhưng không có css, js và hình ảnh.
Nếu tôi kiểm tra trang web, lý do rất đơn giản: đường dẫn của tệp bị sai - chúng dựa trên vị trí (trong ví dụ của tôi .git
).
https://it.dmetzler1988.io/.git/css/main.css net::ERR_ABORTED 404
.
Đây là tệp cấu hình NGINX hoàn chỉnh cho trang này (chỉ xóa đường dẫn chứng chỉ ssl):
người phục vụ {
nghe 443 ssl;
nghe [::]:443 ssl http2;
ssl_certificate <đường dẫn>;
ssl_certificate_key <đường dẫn>;
server_name it.dmetzler1988.io;
gốc /var/data/websites/dmetzler1988.io/it.dmetzler1988.io;
chỉ mục index.html index.php;
lỗi_trang 404 /404.html;
vị trí = /404.html {
root /var/data/trang web/trang lỗi;
nội bộ;
}
vị trí ~ /(.git) {
Phủ nhận tất cả;
trả lại 404;
}
}
Vì vậy, câu hỏi của tôi về nơi này:
- Làm cách nào để khắc phục sự cố với đường dẫn sai (xóa
.git
từ đường dẫn)?
- Đây có phải là cách chính xác cho trường hợp sử dụng như vậy hay có giải pháp nào tốt hơn không?