2011-04-30 18 views
8

के आधार पर सशर्त रूप से HTTP प्रमाणीकरण की आवश्यकता है मेरी होस्टिंग में मेरी साइट (देव, चरण, उत्पादन) की कई तैनाती हैं। मैं अपने htaccess फ़ाइल में HTTP एथ हेडर कैसे जोड़ सकता हूं यदि केवल तभी जब वे सेट किए गए एनविर्नमेंट वेरिएबल 'dev' के बराबर हैं? (जिसका अर्थ है कि उन्होंने एक साइट को SITE_ENVIRONMENT कहा है जो आप जिस साइट पर पहुंच रहे हैं उसके आधार पर देव, चरण या प्रोड हो सकता है।एपैच एनवी वैरिएबल

पीएस। मैं वेनिला तरीकों से एचटीएसीएसी से प्राधिकरण की आवश्यकता के साथ परिचित हूं, लेकिन मैं पूरी तरह से हूं ।। खो दिया जब यह चर का मूल्यांकन या परिणाम के आधार पर एक ब्लॉक लेखन की बात आती है

+0

संबंधित प्रश्न: * [सशर्त .htaccess पासवर्ड कैसे करना है की रक्षा] (http://stackoverflow.com/q/5252330/195835) * –

उत्तर

0

मुझे यकीन है कि यह संभव है नहीं कर रहा हूँ

Theoreticaly, तो आप उपयोग कर सकते हैं:

RewriteCond %{ENV:SITE_ENVIRONMENT} ^dev$ 

जो पर्यावरण निर्धारित करने के लिए आप अंदर हैं, लेकिन मैं कर सकता हूँ एक बुनियादी लेख को मजबूर करने के लिए रीवाइट्रूल लिखने के बारे में सोचें ... जब तक कि आप किसी अन्य पृष्ठ पर रीडायरेक्ट नहीं करते हैं जो मूल लेख को संभालता है और SITE_ENVIRONMENT चर को "dev-authenticated" या किसी चीज़ पर रीसेट करता है।

+1

मैं के साथ बातचीत कर करके इस बात की पुष्टि की कुछ apache devs। बुनियादी लेख को ट्रिगर करने के लिए रीवाइट्रूल लिखने का कोई तरीका नहीं है, इसलिए आपको एक और दृष्टिकोण के बारे में सोचना होगा। – iandouglas

+0

आह, मैं देखता हूं, उत्तर के लिए धन्यवाद। इसे पोस्ट करने के बाद, मैंने अपने दृष्टिकोण पर पुनर्विचार किया, और चूंकि विभिन्न वातावरण एक svn भंडार से तैनात किए गए हैं, इसलिए मैंने अभी एक देव साइट शाखा बनाई है। – Jay

16

आप डोमेन से मिलान पैटर्न के लिए SetEnvIf का उपयोग कर सकते हैं और यह निर्धारित कर सकते हैं कि कौन सा वातावरण उपयोग करना है।

SetEnvIfNoCase Host ^dev.domain.com$ is_on_dev_site 

AuthType Basic 
AuthName "Protected Login" 
AuthUserFile /path/to/.htpasswd 
AuthGroupFile /dev/null 
Require valid-user 
Deny from env=is_on_dev_site 
#allow something like API usage to bypass 
SetEnvIf Request_URI "(/api/.(.*))$" allow 
Order deny,allow 
Allow from env=allow 
Satisfy any 

मैन: http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html

संबंधित मुद्दे