ยินดีต้อนรับสู่ ServerFault
แต่ถ้า URI ที่ร้องขอคือ HTTP และ 404 - ฉันไม่ต้องการเปลี่ยนเส้นทาง เป็น
มีวิธีแก้ไขสำหรับการกำหนดค่าเฉพาะนี้หรือไม่
ฉันไม่รู้ว่าต้องทำอย่างไร ฉันไม่แน่ใจว่าเป็นไปได้หรือไม่
นอกจากนี้ยังมีความเป็นไปได้ที่จะปิดการเปลี่ยนเส้นทาง HTTPS + www สำหรับ 404
ลิงค์เช่น http://www.test.com
ฉันไม่เข้าใจคำถามนี้
หากข้อ 1 หรือ 2 ไม่สามารถทำได้ ฉันสามารถฮาร์ดโค้ดรายการ 404 URL ด้วย
nginx เพื่อปิดการเปลี่ยนเส้นทางทั้งหมดและแสดงเฉพาะ 404
หน้าหนังสือ? (HTTPS และ www)
สิ่งนี้เป็นไปได้ สมมติว่าเรามีรายชื่อไฟล์อยู่ที่ /home/admin/web/test.com/web/404.conf
ในรูปแบบดังต่อไปนี้...
/เกี่ยวกับเรา/ 404;
/about-uss/ 404;
/ติดต่อเรา/ 404;
/ติดต่อเรา/ 404;
แทนที่จะเป็นข้อความ "404" เราสามารถเป็นอะไรก็ได้ยกเว้น "0" (ศูนย์)
การกำหนดค่าที่แก้ไขจะมีลักษณะดังนี้...
แผนที่ $uri $allwillburnn { รวม /home/admin/web/test.com/web/404.conf; }
เซิร์ฟเวอร์ {
ฟัง x.x.x.x:80;
server_name test.com www.test.com;
รูท /home/admin/web/test.com/web/;
ดัชนี index.php index.html index.htm;
access_log /var/log/nginx/domains/test.com.log รวมกัน;
access_log /var/log/nginx/domains/test.com.bytes ไบต์;
error_log /var/log/nginx/domains/test.com.error.log ข้อผิดพลาด;
ถ้า ( $ allwillburnn ) { กลับ 404; }
ส่งคืน 301 https://test.com$request_uri;
}
คำอธิบาย: ตามค่าเริ่มต้น สำหรับ URL ใดๆ ที่ไม่ได้ระบุไว้ในข้างต้น 404.conf
ไฟล์ ตัวแปรชื่อ $allwillburnn
ถูกกำหนดให้เป็นค่า 0 (ศูนย์) โดย แผนที่. ในกรณีนี้, ถ้า การบล็อกถูกข้าม ส่งผลให้ 301 เปลี่ยนเส้นทาง
สำหรับ URL ที่อยู่ใน 404.conf
ไฟล์, $allwillburnn
ถูกกำหนดให้เป็นค่าที่ไม่ใช่ศูนย์ ในกรณีนี้ หากแยกวิเคราะห์บล็อก ผลลัพธ์คือ 404
ฉันหวังว่าจะช่วยได้