Chúng tôi đang làm việc trên cấu hình bộ điều phối AEM và đang cố định cấu hình chính xác cài đặt ErrorDocument của chúng tôi cùng với các quy tắc viết lại. Tóm lại - không rõ liệu ErrorDocument sẽ chạy qua các quy tắc viết lại hay được xử lý thay vì chúng.
Chúng tôi có cấu hình nhiều đối tượng thuê trên bộ điều phối, với mỗi vhost chuẩn hóa các yêu cầu gửi đến theo đúng đường dẫn trên nhà xuất bản. Chúng tôi thấy lỗi 404 của mình được chuyển hướng (301'ed) tới trang 404 thay vì hiển thị với phản hồi 404. (Chúng tôi hoàn toàn không thấy lỗi 404 trên trình duyệt).
Lưu ý bên lề: đây là sự cố gần đây do những thay đổi mà chúng tôi đã thực hiện đối với quy tắc viết lại bộ điều phối, vì vậy chúng tôi tin rằng ErrorDocument Là đang được viết lại, nhưng đang tìm kiếm xác nhận vì SDLC của chúng tôi hơi chậm.
<IfModule disp_apache2.c>
DispatcherUseProcessedURL 1
DispatcherPassLỗi 1
</IfModule>
Xác định CONTENT_ROOT /nội dung/người thuê
ErrorDocument 404 /content/tenant/404.html
RewriteMap lc int:tolower
# 301 yêu cầu đến thư mục gốc hoặc với .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]
# Bây giờ chúng ta có một URL rõ ràng, chúng ta cần ánh xạ nó tới thư mục gốc của tài liệu
RewriteRule ^/(.+)$ ${CONTENT_ROOT}/${lc:$1}.html [L,PT,QSD]
Vấn đề chúng tôi đang thấy là tài liệu 404 đã được ghi vào đúng đường dẫn. chúng ta có nên sử dụng ErrorDocument 404 /404
thay vào đó để ngăn các quy tắc viết lại từ 301'ing nó (như đã làm ở trên) -- hay ErrorDocument xảy ra thay vì các quy tắc khác?