mod_auth
मॉड्यूल के साथ mod_setenvif
का उपयोग कर आप इसे हल कर सकते हैं। कौन सा होस्ट पासवर्ड सुरक्षित है सेट करने के लिए SetEnvIfNoCase
निर्देश का उपयोग करें। आप अतिरिक्त निर्देशों के एक जोड़े की आवश्यकता होगी पहुँच को पूरा करने के:
# Check for the hostname here
SetEnvIfNoCase HOST ^test\.mysite\.com\.?(:80)?$ PROTECTED_HOST
फिर
Directory
ब्लॉक के अंदर
(या बस बाहर खुले में) आप अपने प्रमाणन सामान सेटअप, कुछ इस तरह है:
AuthUserFile /var/www/test.mysite.com/htpasswd
AuthType Basic
AuthName "Password Protected"
अब की आवश्यकता होती है/संतुष्ट सामान के लिए:
Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=!PROTECTED_HOST
यह कर देगा इसलिए किसी भी मेजबान कि ^test\.mysite\.com\.?(:80)?$
से मेल नहीं खाता प्रमाणन की आवश्यकता के बिना उपयोग करना होगा (Allow from env=!PROTECTED_HOST
) लेकिन अन्यथा, हमें एक वैध उपयोगकर्ता (Require valid-user
) की आवश्यकता है। Satisfy any
यह सुनिश्चित करता है कि हमें केवल 2 में से एक की आवश्यकता है, या तो अनुमति या आवश्यकता है।
स्रोत
2011-09-17 21:54:23
मैं एक सशर्त केस सक्रिय करने की कोशिश कर रहा हूं लेकिन इसका परीक्षण करने के लिए का उपयोग करें, लेकिन यह काम नहीं करता है। कोई विचार? .. मैं इसका उपयोग कर रहा हूं: SetEnvIfNoCase होस्ट "dev.example.com" DEV ... और उसके बाद और' नियमित 'साइट के लिए ... –
DM8
@ DM8 क्या [ करता है] नहीं है यही कारण है कि (http://httpd.apache.org/docs/2.2/mod/core.html#ifdefine)। वे चर '-D' कमांड लाइन ध्वज द्वारा सेट किए गए हैं। वे पर्यावरण चर नहीं हैं। –
हम्म, तो अलग अपाचे 2.4 (जो ... ब्लॉक है) करने के लिए उन्नत करने के लिए मेरे मेजबान के लिए इंतज़ार कर से। क्या मैं जिस व्यवहार की उम्मीद कर रहा था उसे पाने का कोई तरीका है? http: //turboflash.wordpress ... अपनी खोजों में मैं निम्न आलेख, जो इंगित करने के लिए वहाँ अपाचे 2.2x में ऐसा करने का _no_ तरीका है लगता है पाया।com/2010/05/27/apache-environment-variables-visibility-with-setenv-setenvif-and-rewriterule-directives/ –
DM8