यह एक अपाचे प्रश्न है जिसे आप शायद पहले पार कर चुके हैं। मैं एक स्रोत पैकेज चाहता हूं जिसे मैं अपने वर्कस्टेशन, मेरे स्टेजिंग सर्वर और मेरे उत्पादन सर्वर पर तैनात कर सकता हूं, लेकिन इसके लिए यूआरएल क्या था, इसके आधार पर अलग .htaccess सेटिंग्स लोड करने के लिए।मैं एक सशर्त .htaccess ब्लॉक कैसे कर सकता हूं?
ध्यान दें कि मैं एक ifModule कॉल के साथ एक क्लज का उपयोग कर रहा था, लेकिन यह हमारे नए उत्पादन सर्वर के साथ काम नहीं करेगा क्योंकि यह मेरे स्टेजिंग सर्वर के समान मॉड्यूल साझा करता है।
नोट मुझे इन पुनर्लेखों के साथ SetEnv को बंडल करने की आवश्यकता है। वर्तमान में यदि आप रीवाइटकॉन्ड का उपयोग करते हैं, तो यह केवल निम्नलिखित रिवाइट्रूल से संबंधित है, लेकिन नीचे सेटएएनवी नहीं है।
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} !^localhost
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
यह ध्यान दिया जाना चाहिए कि अपाचे में php_value निर्देश को पहले उदाहरण में नहीं कहा जा सकता - केवल पर्यावरण चर। दूसरे उदाहरण में, यह सबसे अच्छा विकल्प है क्योंकि आप सचमुच अपने सर्वर को परिभाषित कर सकते हैं। हालांकि, यह केवल तभी काम करता है जब आप पर्यावरण को नियंत्रित करते हैं। यदि आप किसी साझा होस्ट पर हैं, तो आपके पास httpd प्रक्रिया में पैरामीटर पास करने पर नियंत्रण करने का कोई तरीका नहीं है। इसलिए, आप के साथ इसके विपरीत खोजते हैं। –
मैंने पाया कि मैं IfDefine का उपयोग कर सकता हूं क्योंकि मेरा प्रोड सर्वर 100% नियंत्रित है और मैं/etc/sysconfig/httpd OPTION पैरामीटर के साथ गड़बड़ कर सकता हूं और इसे OPTIONS = "- D prod" बना सकता हूं। स्टेजिंग सर्वर पर, जिसे साझा किया गया है, मुझे IfDefine! Prod का उपयोग करना था और उसके बाद एक ifModule expires_module को ढेर करना था। मेरे वर्कस्टेशन पर, मुझे IfDefine का उपयोग करना पड़ा! Prod के बाद IfModule! Expires_module। इसने मुझे एक। Htaccess फ़ाइल दी जो देव, स्टेजिंग/टेस्ट और उत्पादन में काम करता था। –
किंडा भ्रमित, मुझे लगा कि सरल पर्यावरण चर का उपयोग ifdefine पर किया जा सकता है – Dan