का उपयोग करते समय सही ढंग से एक यूआरएल एन्कोड करना मैं एक mod_rewrite और Akelos फ्रेमवर्क से निकाली गई एक रूटिंग प्रणाली का उपयोग कर रहा हूं।रीराइट इंजन
मुझे खोज कुंजी पैरामीटर में कुछ प्रतीकों का उपयोग करते समय एक बहुत बड़ी समस्या है।
एक मार्ग नक्शा पीछा कर रहा है:
$map->connect(":lang/search/:string", array('controller' => 'search','action' => 'index'));
नियंत्रक में अब मैं एक खोज कीवर्ड के रूप में $this->registry->map['params']['get']['string']
मिलता है।
मुझे यूआरएल को सही तरीके से एन्कोड करने का कोई तरीका नहीं मिल रहा है। उदाहरण के लिए के एक स्ट्रिंग ले t\ /#%&=
urlencode()
देता t%5C+%2F%23%25%26%3D
और पृष्ठ प्रदर्शित करता है The requested URL /site/en/search/t\+/#%&= was not found on this server.
rawurlencode()
t%5C%20%2F%23%25%26%3D
देता है और पेज एक ही प्रदर्शित करता है करते हैं।
आप डाउनलोड या एक रूटर वर्ग स्रोत here on this page
मैं वास्तव में यूआरएल और इस तरह के एनकोडिंग है जिसके द्वारा आप कुछ भी नहीं पढ़ सकते हैं के लिए बेस 64 उपयोग करने के लिए नहीं करना चाहते हैं देख सकते हैं।
मामले में अगर तुम यहाँ की जरूरत है एक .htaccess
फ़ाइल की सामग्री के रूप में अच्छी तरह से है:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
अद्यतन
Here are actually working files for making tests.
यदि आपके पास समय है आपके सर्वर पर इन फ़ाइलों और परीक्षण डाउनलोड करें ।
गाइड:
controllerclass.php
- सरल नियंत्रक ढांचे, उस में एक वर्ग "नियंत्रक" को परिभाषित करते हुए काम करने के लिए सक्षम बनाता है searchcontroller.php
routerclass.php
- एक रूटर वर्ग Akelos फ्रेमवर्क से निकाला, बग शायद है वहाँ
routes.php
- एक जगह है जहाँ आप अपने routs परिभाषित, हमारे मामले में हम केवल /search/:string
searchcontroller.php
- तार परीक्षण करने के लिए एक बुनियादी आवेदन -/इस फाइल
index.php
करने के लिए खोज/stringhere अंक - मुझे नहीं लगता कि एक त्रुटि यहाँ है
.htaccess
होता है
मुझे लगता है कि आप index.php
में परिवर्तन करने के लिए, controllerclass.php
, routes.php
की जरूरत नहीं होगी, searchcontroller.php
एक बग शायदमें हैया शायद .htaccess
में कुछ फ़िक्स आवश्यक है जो मुझे विश्वास नहीं है।
'बी' और' एनई 'झंडे जोड़ने का प्रयास करें, प्रत्येक अकेले और संयुक्त। –
वही, परिणाम नहीं दिया। – Davit
मैं दूसरा बस बी ध्वज जोड़ रहा हूं, इसलिए '[क्यूएसए, एल, बी]' – Gerben