2009-09-09 15 views
16

मैं एक आरईएसटी प्रोटोकॉल को लागू करने की कोशिश कर रहा हूं और डीबग करने की कोशिश में महसूस किया है कि मेरा वेब सर्वर PUT अनुरोध को अस्वीकार कर रहा है।मेरा वेब सर्वर सॉफ़्टवेयर PUT को अस्वीकार क्यों करता है और अनुरोध हटा देता है?

मैं परीक्षण किया है और चलाकर आगे इस की पुष्टि की है:

curl -X PUT http://www.mywebserver.com/testpage 

कौन सा मेरे वेब सर्वर के लिए वापस एक 403 देता है - निषिद्ध त्रुटि

DELETE के लिए ऐसा ही होता है, जहांऔर GET के लिए सब कुछ ठीक है।

मुझे आश्चर्य है कि यह एक आम मुद्दा है कि जो लोग आरईएसटी मुठभेड़ का उपयोग करते हैं और काम-आसपास क्या हो सकता है?

क्या मैं .htaccess फ़ाइल में एक साधारण परिवर्तन कर सकता हूं? या क्या मुझे POST क्वेरी स्ट्रिंग में एक छुपे हुए चर "_method" सेट करने के लिए प्रोटोकॉल को संशोधित करने की आवश्यकता है?

उत्तर

54

अक्सर वेब सर्वर प्राप्त और पोस्ट के अलावा कुछ ब्लॉक करने के लिए विन्यस्त किया जाएगा के बाद से समय की 99% वे सब कि जरूरत है और वहाँ अनुरोध मानते हुए अनुप्रयोगों के साथ अतीत में समस्याओं गया है थे रहे हैं उन दो में से एक ।

आप कहते हैं कि नहीं है जो सर्वर यह है, लेकिन, उदाहरण के लिए, आप अपाचे बता सकते हैं जो तरीकों निर्देश के साथ अनुमति देने के लिए:

जैसे:

<Limit POST PUT DELETE> 
    Require valid-user 
</Limit> 

यह शायद कुछ उपयोगी की तरह लगता है सिस्टम प्रशासक इस गैर प्राप्त ब्लॉक करने के लिए इस्तेमाल किया गया है/पोस्ट

आप एक .htaccess साथ की कोशिश कर सकते

<Limit GET POST PUT DELETE> 
    Allow from all 
</Limit> 

(मैं अपाचे पर एक विशेषज्ञ नहीं हूँ, यह बिल्कुल सही नहीं हो सकता है)

+0

मैं जोड़ देंगे कि इस काम करता है, भले ही आप को खोजने के लिए प्रतीत नहीं कर सकते हैं * जहां * उन तरीकों अक्षम हैं। - अहम, बस इसे मिला, डेबियन में यह userdir.conf में है। – bigstones

+0

मुझे '.htaccess' फ़ाइल कहां रखना चाहिए? –

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