2009-09-03 8 views
9

मैं django के लिए काफी नया हूं और अपने पैरों को गीला करने के लिए बस कुछ सरल प्रयोगों की कोशिश कर रहा हूं। मैं django 1.0, apache2 prefork और mod_wsgi चला रहा हूँ। मैं निम्न URL संरचनाdjango - मूल प्रमाणीकरण के साथ कुछ वेब पथों की रक्षा करें

/ 
/members 
/admin 

जड़ के साथ एक साइट का निर्माण करने के लिए कोशिश कर रहा हूँ मूल रूप से एक सार्वजनिक क्षेत्र है।
सदस्यों के पथ को बुनियादी प्रमाणीकरण (शायद अपाचे द्वारा प्रमाणित) का उपयोग करके संरक्षित किया जाना चाहिए
व्यवस्थापक पथ को डीजेंगो प्रमाणीकरण में निर्मित का उपयोग करके संरक्षित किया जाना चाहिए।

दस्तावेज़ीकरण में उदाहरणों के बाद मैं मूल रूप से संपूर्ण प्रमाणीकरण के साथ पूरी साइट की रक्षा कर सकता हूं, लेकिन यह वही नहीं है जो मैं चाहता हूं।

वर्चुअल होस्ट config से छोड़कर:

WSGIScriptAlias//django/rc/apache/django.wsgi 
<Directory /django/rc/apache> 
AuthType Basic 
AuthName "Authentication Required" 
AuthUserFile "/django/_HTPASSWD/.htpasswd" 
Require valid-user 

# Order allow,deny 
# Allow from all 
</Directory> 

किसी को भी मदद कर सकते हैं सही दिशा में मुझे बात यह कैसे संभव बनाने के लिए (या फ्लैट बाहर मुझे बताओ पी =)?

धन्यवाद


संपादित करें: एक छोटे से चारों ओर खेलने के बाद मैं मैं की तरह कुछ कर सकते हैं की खोज की: django.wsgi फ़ाइल मूलतः एक ही किसी अन्य निर्देशिका में नकल फ़ाइल है

WSGIScriptAlias//django/rc/apache/django.wsgi 
<Directory /django/rc/apache> 
Order allow,deny 
Allow from all 
</Directory> 

WSGIScriptAlias /members /django/rc/apache_httpauth/django.wsgi 
<Directory /django/rc/apache_httpauth> 
AuthType Basic 
AuthName "Authentication Required" 
AuthUserFile "/django/_HTPASSWD/.htpasswd" 
Require valid-user 

</Directory> 

तो कि WSGIScriptAlias ​​अलग है। यह हैक-आश है लेकिन यह काम करता है ..

क्या मुझे पसंद है करने का एक बेहतर तरीका है?
क्या ऐसा करने के लिए कोई डाउनसाइड्स हैं?

धन्यवाद

उत्तर

8

बदलें:

<Directory /django/rc/apache_httpauth> 
AuthType Basic 
AuthName "Authentication Required" 
AuthUserFile "/django/_HTPASSWD/.htpasswd" 
Require valid-user 
</Directory> 

रहे हैं:

<Location /members> 
AuthType Basic 
AuthName "Authentication Required" 
AuthUserFile "/django/_HTPASSWD/.htpasswd" 
Require valid-user 
</Location> 

मैं नहीं मानता कि आप की जरूरत चाहिए:

WSGIScriptAlias /members /django/rc/apache_httpauth/django.wsgi 
+0

पूरी साइट Django में किया जाता है, व्यवस्थापक खंड jsut नहीं है। यदि मैं WSGIScriptAlias ​​निकालता हूं, तो apache कैसे पता चलता है कि django साइट कैसे चलाती है? यानी/सदस्य एक वेब पथ है जिसे urls.py में परिभाषित किया गया है। यह फाइल सिस्टम पर शारीरिक रूप से मौजूद नहीं है। btw मुझे अतीत में django सामान पर संदर्भ के लिए आपके ब्लॉग पर सामान पढ़ने याद है। बस thx कहना चाहता था। –

+0

आप अभी भी साइट की रूट पर बढ़ते एप्लिकेशन के लिए पहला WSGIScriptAlias ​​रखते हैं, बस उप यूआरएल से छुटकारा पाएं। मैं यहां अनुमान लगा रहा हूं कि वे अंततः एक ही आवेदन को संबोधित करते हैं। स्थान निर्देश मुख्य अनुप्रयोग के लिए यूआरएल के उस सबसेट पर प्रतिबंध लागू करता है। –

+0

आह मैंने यह नहीं देखा कि आपने "निर्देशिका" निर्देश के बजाय "स्थान" निर्देश निर्दिष्ट किया है। मैं कल कोशिश करूँगा। धन्यवाद! –

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