คำนำ
ประการแรก: เพียงแค่พอร์ต 80 -> พอร์ต 443 Rewrite จะไม่แก้ไขปัญหานี้ ในเกือบทุกคำถามก่อนหน้านี้เมลเธรดฟอรัมและอื่น ๆ ฉันพบว่านี่เป็นการตอบสนองครั้งแรกที่ไม่รู้และถูก parroted หลายครั้ง
ประการที่สอง: ใช่ฉันรู้ว่าคุณไม่สามารถให้บริการการรับส่งข้อมูล HTTP และ HTTPS บนพอร์ตเดียวกัน นี่ไม่ใช่อย่างนั้น
สถานการณ์:
เซิร์ฟเวอร์ Apache โฮสต์หลายไซต์ผ่านการคูณพอร์ต พอร์ต 80 ให้บริการเว็บไซต์สาธารณะ พอร์ต 443 ให้บริการเวอร์ชันที่ปลอดภัยของไซต์นั้น
พอร์ต 7443, 8443 และ 9443 แต่ละแห่งให้บริการไซต์ SSL ที่แยกต่างหาก
หากผู้ใช้พิมพ์ URL ผิดหรือได้รับลิงก์ที่ไม่ถูกต้องให้พูดhttp: //hostname.tld: 7443พวกเขาจะได้รับหน้าไร้สาระดังต่อไปนี้:
แทนของเซิร์ฟเวอร์เพียงการเปลี่ยนเส้นทางพวกเขาไปยังhttps: //hostname.tld: 7443
คำถามของฉันคือในชื่อbutthole ของ Zeusคุณสามารถปรับเปลี่ยนพฤติกรรมของ Apache หรือข้อความแสดงข้อผิดพลาดนี้เพื่อเปลี่ยนเส้นทางผู้ใช้โดยอัตโนมัติได้อย่างไร?
เห็นได้ชัดว่า Apache ให้บริการคำขอที่ไม่ใช่ https (เพื่อแสดงข้อความแสดงข้อผิดพลาดนั้น) แม้ว่าจะได้รับการกำหนดค่าสำหรับ HTTPS ดูเหมือนว่าฉันจะไม่เพียงแค่เปลี่ยนเส้นทางไปตามค่าเริ่มต้น แต่ฉันสามารถเข้าใจได้ว่าทำไมพวกเขาถึงมีพฤติกรรมที่พวกเขาทำแม้ว่าฉันจะไม่เห็นด้วยก็ตาม ดังนั้นคำถามของฉันคือคุณเปลี่ยนได้ไหม พวกเขาจัดการกับข้อผิดพลาดได้ไม่นานและด้วย Apache เป็นความอุดมสมบูรณ์ของการกำหนดค่าว่ามันเป็นเหตุผลที่มีคำสั่งบางอย่างที่จะจัดการกับพฤติกรรมนี้ แต่ฉันไม่สามารถหามันได้ในเวลาไม่กี่ชั่วโมง
ปรับปรุง:
ฉันได้ลองทำสิ่งต่าง ๆ รวมถึง:
ใช้
ErrorDocument 400
คำสั่งเพื่อรับ CGI และสคริปต์ PHP ที่เพิ่งส่งStatus 301
และLocation
ส่วนหัว ผลลัพธ์นี้ในหน้าว่าง การใช้ErrorDocument 400 https://hostname.tld:7443
ผลลัพธ์เพียงอย่างเดียวในลิงค์นั้นจะปรากฏบนหน้าเว็บการใช้การรวมกันของ
mod_rewrite
I หรือ Google เกือบทุกครั้งสามารถเกิดขึ้นได้ สิ่งเหล่านี้ไม่ทำงาน แท้จริงพวกเขาไม่ทำอะไรเลย ฉันคาดการณ์ว่า Apache กำลังเตะไปยังข้อผิดพลาดด้านบนก่อนที่จะพยายามประมวลคำสั่งที่เขียนใหม่
ฉันไม่สามารถใช้การเปลี่ยนเส้นทางแบบพอร์ตได้เนื่องจากการใช้พอร์ตแบบกำหนดเอง ฉันไม่สามารถใช้การเปลี่ยนเส้นทางแบบอิงสคริปต์ได้เนื่องจากไม่ได้รับการแสดงผลเนื่องจาก http / https ไม่ตรงกัน ฉันเกือบจะยินดีที่จะชอล์กนี้ถึงข้อผิดพลาดหรือพฤติกรรมที่ไม่ตั้งใจ แต่ใครบางคนมีความคาดหวังที่จะใส่ข้อความข้อผิดพลาดที่กำหนดเองมากในนั้นพวกเขาไม่ได้คิดว่าบางทีคุณอาจต้องการที่จะซื้อ URL ที่พวกเขาให้บริการอยู่แล้ว ?