Chào mừng đến với ServerFault.
Nhưng nếu URI được yêu cầu là HTTP và 404 - tôi không cần chuyển hướng. Là
có giải pháp nào cho cấu hình cụ thể này không?
Tôi không biết làm thế nào để làm điều này. Tôi không chắc chắn nếu nó thậm chí có thể.
Ngoài ra còn có khả năng tắt chuyển hướng HTTPS + www cho 404
liên kết như http://www.test.com
Tôi không hiểu câu hỏi này.
Nếu không thể thực hiện được điểm 1 hoặc 2, tôi có thể mã hóa cứng danh sách các URL 404 bằng
nginx để tắt hoàn toàn mọi chuyển hướng cho họ và chỉ hiển thị 404
trang? (HTTPS và www)
Điều này là khả thi. Giả sử chúng ta có danh sách các tập tin tại /home/admin/web/test.com/web/404.conf
theo định dạng sau...
/aboutt-us/ 404;
/about-uss/ 404;
/liên hệ với chúng tôi/ 404;
/liên hệ với chúng tôi/ 404;
Thay vì văn bản "404", chúng tôi có thể có bất kỳ thứ gì ngoại trừ "0" (không).
Cấu hình sửa đổi sẽ trông như thế này ...
bản đồ $uri $allwillburnn { bao gồm /home/admin/web/test.com/web/404.conf; }
người phục vụ {
nghe x.x.x.x:80;
server_name test.com www.test.com;
gốc /home/admin/web/test.com/web/;
chỉ mục index.php index.html index.htm;
access_log /var/log/nginx/domains/test.com.log kết hợp;
access_log /var/log/nginx/domains/test.com.bytes byte;
error_log /var/log/nginx/domains/test.com.error.log lỗi;
nếu ( $allwillburnn ) { return 404; }
trả lại 301 https://test.com$request_uri;
}
Giải thích: Theo mặc định, đối với bất kỳ URL nào không được liệt kê ở trên 404.conf
tệp, biến có tên $allwillburnn
được gán cho giá trị 0 (không) bởi bản đồ. Trong trường hợp này, nếu khối bị bỏ qua, dẫn đến chuyển hướng 301.
Đối với các URL được liệt kê trong 404.conf
tập tin, $allwillburnn
được gán cho giá trị khác không. Trong trường hợp này, nếu khối được phân tích cú pháp, kết quả là 404.
Tôi hy vọng điều đó sẽ hữu ích.