मैं Django साइट रूट को Django व्यवस्थापक पैनल पर रीडायरेक्ट करने का प्रयास कर रहा हूं, और मुझे ज्यादातर इसे मिल गया है और चल रहा है। हालांकि, मैंने देखा है कि जब तक कि प्रोजेक्ट यूआरएल में कोई पिछला स्लैश न हो, पेज पर दिए गए लिंक में प्रोजेक्ट फ़ोल्डर शामिल नहीं होता है, और इसके बजाय साइट रूट में ऐप्स ढूंढने का प्रयास करें।व्यवस्थापक पैनल में Django रूट को रीडायरेक्ट करना
तो, मुझे लगता है कि मेरे पास एक परियोजना foo
है, और एक ऐप bar
है। यदि आप http://server/foo/
(पीछे की ओर स्लैश के साथ) पर जाते हैं, तो सब ठीक काम करता है, और पृष्ठ पर दिए गए लिंक http://server/foo/bar
पर जाते हैं। हालांकि, अगर कोई http://server/foo
पर जाता है, तो जेनरेट किए गए लिंक http://server/bar
पर जाते हैं, जो 404 त्रुटि उत्पन्न करता है।
अगर मैं /foo/
बजाय /foo
को इंगित करने के WSGIScriptAlias
निर्धारित करते हैं, यह अगर मैं /foo
पर नेविगेट एक 404 त्रुटि देना होगा। मैंने अपाचे में रीडायरेक्ट के साथ एक पिछला स्लैश लगाने की कोशिश की, लेकिन मैं एक रिकर्सिव रीडायरेक्ट उत्पन्न कर रहा हूं (http://server/foo//////...
)। मैंने अभी तक .htaccess फ़ाइल का उपयोग करने की कोशिश नहीं की है, लेकिन मुझे संदेह है कि वही बात हो सकती है।
मैं urls.py
में एक ही बात करने की कोशिश की, हालांकि:
url(r'^$', redirect_to, {'url': '/'}), # goes to server root http://server/
url(r'^$', redirect_to, {'url': 'foo/'}), # goes to http://server/foo/foo
url(r'^$', redirect_to, {'url': '/foo/'}), # infinite redirect
मैं भी बस एक स्लेश सभी Django यूआरएल के लिए इतना की तरह जोड़कर की कोशिश की:
url(r'^(.*)/', include(admin.site.urls))
लेकिन यह कुछ भी मैच के लिए विफल रहता है प्रोजेक्ट रूट फ़ोल्डर में सभी (हालांकि यदि आप ऐप पर नेविगेट करते हैं, तो यह ठीक काम करता है)।
मैं Apache 2.2 का उपयोग कर रहा mod_wsgi साथ, यहाँ विन्यास है:
Alias /static "C:/DJANGO~1/apps/django/django/contrib"
<Directory 'C:/DJANGO~1/apps/django/django/contrib'>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias /foo "C:/Djangostack/apps/django/scripts/django.wsgi"
<Directory 'C:/Djangostack/apps/django/scripts'>
Order allow,deny
Allow from all
</Directory>
और यह urls.py
कि ज्यादातर काम करता है:
urlpatterns = patterns('',
url(r'^', include(admin.site.urls)),
)
मुझे यकीन है कि बनाया है APPEND_SLASH
पर सेट है सच है, लेकिन यह रूट प्रोजेक्ट फ़ोल्डर में काम नहीं कर रहा है।
'/ foo' को'/bar' पर रीडायरेक्ट क्यों किया जाएगा? यह रीडायरेक्ट कहां हो रहा है? –
यह वास्तव में '/ foo' को'/bar' पर रीडायरेक्ट नहीं किया जा रहा है - इसके बजाय, पृष्ठ पर जेनरेट किए गए यूआरएल '/ foo/bar' के बजाय'/bar' पर जाते हैं। – Hannele