Đây là một câu hỏi Apache mà bạn có thể gặp phải trước đây. Tôi muốn có một gói nguồn mà tôi có thể triển khai đến máy trạm của mình, máy chủ dàn dựng của tôi và máy chủ sản xuất của tôi, nhưng để nó tải các cài đặt .htaccess khác nhau dựa trên URL được sử dụng.Tôi có thể có khối .htaccess có điều kiện như thế nào?
Lưu ý rằng tôi đang sử dụng một kludge với một cuộc gọi IfModule, nhưng điều đó sẽ không hoạt động với máy chủ sản xuất mới của chúng tôi vì nó chia sẻ tất cả các mô-đun giống như máy chủ dàn dựng của tôi.
Lưu ý Tôi cần phải nhóm SetEnv bằng các ghi đè này. Hiện tại nếu bạn sử dụng RewriteCond, nó chỉ liên kết với RewriteRule sau đây, nhưng không gắn với SetEnv bên dưới.
Cần lưu ý rằng chỉ thị php_value trong Apache không thể được gọi trong ví dụ đầu tiên - chỉ các biến môi trường. Trong ví dụ thứ hai, đây là lựa chọn tốt nhất bởi vì bạn có thể định nghĩa nghĩa là máy chủ của bạn. Tuy nhiên, điều này chỉ hoạt động nếu bạn kiểm soát môi trường. Nếu bạn đang ở trên một máy chủ chia sẻ, bạn không có cách nào để kiểm soát việc truyền tham số cho quy trình httpd. Vì vậy, bạn tìm kiếm nghịch đảo của điều này với. –
Tôi thấy tôi có thể sử dụng IfDefine vì máy chủ prod của tôi được kiểm soát 100% bởi tôi và tôi có thể gây rối với tham số OPTION/etc/sysconfig/httpd OPTION và làm cho nó OPTIONS = "- D prod". Trên máy chủ dàn dựng, được chia sẻ, tôi đã phải sử dụng IfDefine! Prod và sau đó ngăn xếp một IfModule expires_module bên dưới nó. Trên máy trạm của tôi, tôi đã phải sử dụng IfDefine! Prod theo sau là IfModule! Expires_module. Điều này đã cho tôi một tệp .htaccess hoạt động trong dev, dàn dựng/thử nghiệm và sản xuất. –
Kinda khó hiểu, làm cho tôi nghĩ rằng các biến môi trường đơn giản có thể được sử dụng trên ifdefine – Dan