/ / ज़ेंड फ्रेमवर्क - नियंत्रक के रूप में / सार्वजनिक / निर्देशिका का इलाज न करें - ज़ेंड-फ्रेमवर्क

ज़ेंड फ्रेमवर्क - नियंत्रक के रूप में / सार्वजनिक / निर्देशिका का इलाज न करें - ज़ेंड-फ्रेमवर्क

क्या ज़ेन / सार्वजनिक / निर्देशिका में http पर एक नियंत्रक के रूप में इलाज किए बिना किसी निर्देशिका का अनुरोध करना संभव है?

उदाहरण के लिए, मेरे पास एक निर्देशिका है, / सार्वजनिक / फेसबुक / जिसमें फेसबुक ऐप डेटा है लेकिन ज़ेंड (डिफ़ॉल्ट रूप से अपेक्षित व्यवहार के रूप में) है जब मैं अनुरोध करता हूं तो "फेसबुक नियंत्रक गायब" त्रुटि दे रहा है http://mysite.com/facebook.

उत्तर:

जवाब के लिए 0 № 1

ऐसा इसलिए है क्योंकि ज़ेंड के साथ प्रदान किए गए डिफ़ॉल्ट रिवाइट्रूल्स सभी अनुरोधों को ज़ेंड फ्रेमवर्क बूटस्ट्रैपर (index.php) पर रीडायरेक्ट कर रहे हैं।

करने के लिए सबसे अच्छी बात, आईएमएचओ, एक जोड़ना हैइस नियम के अपवाद। फिर इसे करने के लिए एक से अधिक तरीके हैं। आप रीवाइटकंड का उपयोग कर सकते हैं (और उदाहरण के लिए मौजूदा निर्देशिका या फ़ाइलों में / सार्वजनिक रूप से सामान्य रीडायरेक्ट से बचें)। लेकिन आप इसे रीव्राइटरूले अभिव्यक्ति में भी फ़िल्टर कर सकते हैं। यह एक है रिवाइट्रूले में अपवाद के साथ उदाहरण, तो बिना रिवाइटकंड:

RewriteRule !(public/facebook/(.*.php))|(public/(.*.pdf))|(externalauthent.php)|(favicon.ico)|(images/(.*.(ico|gif|jpg|png|bmp|JPG|JPEG|BMP|GIF|PNG)))|(css/(.*.css))|(js/(.*.*))$ /index.php [L]

जवाब के लिए 0 № 2

अगर आपके पास इस यूआरएल में सामग्री है, तो जेडएफ फेसबुक नियंत्रक को खोजने की कोशिश नहीं करता है, आपको इस फ़ोल्डर में फेसबुक नामक फ़ोल्डर जोड़ने की जरूरत है, और एक फाइल index.php


जवाब के लिए 0 № 3

यह मेरे लिए काम करता है:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}  !^/public_directory_name
RewriteRule ^.*$ index.php [NC,L]

निर्देशिका के नाम से बस "public_directory_name" को प्रतिस्थापित करें, जिसे आप ज़ेंड को नियंत्रक के रूप में नहीं मानना ​​चाहते हैं।

एक अलग शब्द प्रश्न में उत्तर दिया: htaccess - इस मामले में फिर से लिखना नहीं है