เรากำลังทำงานกับการกำหนดค่าโปรแกรมเลือกจ่ายงาน AEM และกำลังพยายามกำหนดค่าการตั้งค่า ErrorDocument ร่วมกับกฎการเขียนซ้ำอย่างถูกต้อง กล่าวโดยย่อ - ไม่ชัดเจนว่า ErrorDocument จะทำงานผ่านกฎการเขียนซ้ำหรือดำเนินการแทนกฎเหล่านั้น
เรามีการกำหนดค่าหลายผู้เช่าบนผู้มอบหมายงาน โดยแต่ละ vhost จะปรับคำขอขาเข้าให้เป็นมาตรฐานไปยังเส้นทางที่ถูกต้องบนผู้เผยแพร่ เราเห็นข้อผิดพลาด 404 ของเราถูกเปลี่ยนเส้นทาง (301'ed) ไปยังหน้า 404 แทนที่จะแสดงด้วยการตอบสนอง 404 (เราไม่เห็น 404 ที่เบราว์เซอร์เลย)
หมายเหตุด้านข้าง: นี่เป็นปัญหาล่าสุด เนื่องจากเราได้ทำการเปลี่ยนแปลงกฎการเขียนใหม่ของผู้มอบหมายงาน ดังนั้นเราจึงเชื่อว่า ErrorDocument เป็น กำลังเขียนใหม่ แต่กำลังมองหาการยืนยันเนื่องจาก SDLC ของเราค่อนข้างช้า
<IfModule disp_apache2.c>
DispatcherUseProcessedURL 1
DispatcherPassError 1
</หากโมดูล>
กำหนด CONTENT_ROOT /content/tenant
เอกสารข้อผิดพลาด 404 /content/tenant/404.html
RewriteMap lc int:tolower
# 301 คำขอมาที่รูทเอกสารหรือด้วย .html
RewriteCond %{REQUEST_URI} ^/content/tenant/(.+)\.html$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/content/tenant/(.+) [NC,OR]
RewriteCond %{REQUEST_URI} ^/(.+)\.html$ [NC]
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/${lc:%1} [R=301,QSA,L]
# ตอนนี้เรามี URL ที่สะอาดแล้ว เราจำเป็นต้องแมปกับรูทของเอกสาร
RewriteRule ^/(.+)$ ${CONTENT_ROOT}/${lc:$1}.html [L,PT,QSD]
ปัญหาที่เราเห็นคือเอกสาร 404 ถูกเขียนไปยังเส้นทางที่ถูกต้องแล้ว เราควรใช้ เอกสารข้อผิดพลาด 404 /404
แทนที่จะป้องกันไม่ให้กฎการเขียนซ้ำจาก 301 (เหมือนด้านบน) - หรือ ErrorDocument เกิดขึ้นแทนกฎอื่นหรือไม่