tl; dr: Làm thế nào để làm như sau trong một conf hoặc tập tin .htaccess:Phát hiện phiên bản Apache trong cấu hình apache?
<IfApache22>
# Do A
</IfApache22>
<IfApache24>
# Do B
</IfApache24>
Còn câu hỏi:
Với Apache 2.4 cũ Order get của phản đối ủng hộ Require.
Trong file .htaccess của tôi, tôi có
<FilesMatch "\.(long|list|file|types)$">
Order allow,deny
</FilesMatch>
có nghĩa là Apache thất bại trong việc bắt đầu, trừ khi tôi cho phép access_compat. Trong khi làm như vậy trình bày một cách giải quyết hữu ích, tôi muốn một giải pháp làm việc với cả hai cú pháp khi cấu hình sẽ được phân phối cho rất nhiều máy chủ. Câu hỏi đặt ra là làm cách nào tôi có thể phát hiện phiên bản Apache hiện tại và áp dụng đúng chỉ thị.
Tôi dự định sử dụng tệp cho khung được phân phối và sử dụng bởi nhiều người và tôi không thể kiểm soát/đảm bảo rằng họ có hoặc thiếu bất kỳ thiết lập máy chủ cụ thể nào, đó là lý do tôi muốn tập tin là 2.2/2.4 "bất khả tri".
+1 cho tùy chọn IfDefine và -D. Nó không thực sự giúp tôi mặc dù. Chạy hai phiên bản của máy chủ web có vẻ như _a lot_ của công việc khi một đơn giản nếu/người nào khác có thể giải quyết nó. Bạn có thể mở rộng "các thư mục riêng biệt" hơn một chút không? Kiểm tra phiên bản hiện tại có vẻ như là một giải pháp rất hay cho tôi. Mở rộng câu hỏi một chút về lý do tại sao. – Letharion