2011-10-21 20 views
6

मैं एक API सर्वर है कि मैं इस पर काम कर रहा हूँ वर्तमान में तरहhtaccess नियम का अनुरोध करता है

http://localhost/request.php?method=get&action=query_users&id=1138ab9bce298fe35553827792794394&time=1319225314&signature=d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000 

नीचे मैं एक htaccess नियम है कि यूआरएल पढ़ सकते हैं बनाने के लिए मदद की जरूरत है $ _GET चर के माध्यम से अनुरोध स्वीकार करता है '' को '/' के साथ प्रतिस्थापित करें और '=' और '?' साथ '/' की तरह

http://localhost/request/method/get/action/query_users/id/1138ab9bce298fe35553827792794394/time/1319225314/signature/d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000 

एक साफ यूआरएल बनाने के लिए वहाँ, जबकि अभी भी मानकों को हाथ लगाए बिना एपीआई के लिए से काम करने के लिए ऐसा करने का कोई तरीका है?

यह भी एकमात्र अनुरोध नहीं है कि विभिन्न अनुरोध किए जाएंगे।

Stackoverflow हमेशा अग्रिम

+0

की तरह लगता है

//not really tested, treat as pseudocode //doesn't remove the base url $params = array(); $parts = explode('/', $_SERVER['REQUEST_URI']); //skip through the segments by 2 for($i = 0; $i < count($parts); $i = $i + 2){ //first segment is the param name, second is the value $params[$parts[$i]] = $parts[$i+1]; } //and make it work with your exsisting code $_GET = $params; 
उस जगह में साथ

, तो आप में सक्षम अनुरोध करने के लिए किया जाना चाहिए http://stackoverflow.com/question का डुप्लिकेट एस/1345314/अपाचे-मोड-रीराइट-प्रतिस्थापन-चरित्र-दूसरे के साथ, दूसरा उत्तर देखें – Zyava

+1

आपके उदाहरण से निर्णय लेना यूआरआई ऐसा लगता है कि आपके पास रीस्टफुल एपीआई की मौलिक गलतफहमी है। _representational राज्य हस्तांतरण_ की खोज आपको इस विषय पर बहुत अधिक जानकारी प्राप्त करेगी। – Herbert

उत्तर

21

यह सवाल इस तरह का करने के लिए अपने मानक जवाब हो जाता है में बहुत धन्यवाद विशेषज्ञों की सलाह के लिए जाने के लिए जगह है, लेकिन तुम क्यों .htaccess नियम जब आप के साथ ऐसा करने की कोशिश कर रहे बस इसे request.php में कर सकता है, और यह अधिक रखरखाव होगा। अपनी PHP स्क्रिप्ट में बस $_SERVER['REQUEST_URI'] के मान को पार्स करें।

http://example.com/request.php/method/get/action/query_users/id/1138ab9bce298fe35553827792794394/time/1319225314/signature/d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000 

या इस सरल .htaccess का उपयोग करें::

RewriteRule ^request/ request.php 

और अनुरोध:

http://example.com/request/method/get/action/query_users/id/1138ab9bce298fe35553827792794394/time/1319225314/signature/d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000 
+0

धन्यवाद! यह अच्छी तरह से काम करता है – user866190

+1

मैं हमेशा के लिए एक अच्छा 'htaccess' समाधान के लिए खोज रहा हूं और इसके बजाय 'REQUEST_URI' को विस्फोट करने का विचार नहीं किया ... आप सही हैं, अधिक रखरखाव योग्य, धन्यवाद! –

+0

भयानक समाधान :-) –

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