तोड़ने मैं एक यूआरएल स्ट्रिंग है कि इस तरह काम करता है बनाने के लिए कोशिश कर रहा हूँ स्लैश:यूआरएल आगे इनकोडिंग मेरी CodeIgniter एप्लिकेशन
/app/process/example.com/index.html
तो दूसरे शब्दों में
,
/app/process/$URL
मैं तो साथ url प्राप्त
$this->uri->segment(3);
यूआरएल में आगे की धड़कन निश्चित रूप से यूरी सेगमेंट तक पहुंचने में एक समस्या होगी, इसलिए मैं अहीया जाऊंगा घ और यूआरएल URL भाग सांकेतिक शब्दों में बदलना:
/app/process/example.com%2Findex.html
.. लेकिन अब मैं सिर्फ कह 404 मिलता है ...
Not Found
The requested URL /app/process/example.com/index.html was not found on this server.
ऐसा लगता है कि आगे की मेरी यूआरएल एन्कोडिंग टूटता स्लैश सीआई के यूआरआई पार्सर।
इस समस्या को हल करने के लिए मैं क्या कर सकता हूं?
यह सही है। हालांकि जब भी तय किया जाता है तो आपको समस्याएं आ सकती हैं, क्योंकि सीजीआई मानक जो PATH_INFO को परिभाषित करता है, स्ट्रिंग को यूआरएल-डिकोडिंग के एक दौर से गुजरना पड़ता है, जो स्लैश तोड़ सकता है। केवल अपाचे पर, आप REQUEST_URI का उपयोग कर सकते हैं, जो इससे पीड़ित नहीं है ... डुनो अगर सीआई इसका उपयोग कर सकता है। – bobince
मैंने अभी साइट पर इस समस्या को ठीक किया है। यह एक हैक का एक सा है, लेकिन यह काम पूरा हो गया: मैं यूआरएल urlencoded डबल। इस तरह REQUEST_URI का urldecode/बहुत जल्दी वापस नहीं करता है। –
असल में, आप जो चाहते हैं वह संभवतः 'AllowEncodedSlashes NoDecode' – celwell