2012-06-18 7 views
9

& is a reserved character in html इसलिए हर जगह मैं क्वेरी स्ट्रिंग के साथ कुछ पथ के लिए यूआरएल की ओर इशारा करते है मैं & amp डाल यूआरएल के युक्त एम्परसेंड का अनुरोध करता है; & के बजाय ताकि मुझे वैध HTML मिल सके।प्रथाओं की तरह "&" के बदले "और"

एक कई अलग अलग क्रॉलर्स कि वेबसाइट पर चला जाता है और का उपयोग कर रहे हैं इस यूआरएल की लेकिन वे सही यूआरएल मूल्यों को प्राप्त करने के लिए एचटीएमएल डीकोड तरीकों का उपयोग नहीं करते तो वे साथ मेरी वेबसाइट से अनुरोध करती हैं:

mywebsite.com/?p1=v1&p2=v2 

mywebsite.com/?p1=v1&p2=v2 
अभी

के बजाय मैं रोबोट बनाता है कि इस अनुरोध मेरे लिए कोई दिलचस्पी नहीं कर रहे हैं के रूप में त्रुटि पृष्ठ के साथ जवाब कर रहा हूँ।

लेकिन मेरा सवाल यह है कि इस तरह के अनुरोधों को संभालने का सबसे अच्छा अभ्यास क्या है?

क्या आप जानते हैं कि इस तरह के अनुरोधों को संभालने में सहायता के लिए कोई उपयोग है या नहीं? (उदाहरण के लिए क्या कोई लोकप्रिय क्रॉलर या ब्राउज़र हैं जो इस यूआरएल को सही तरीके से परिवर्तित नहीं करते हैं?)

+1

विशेषताओं में यह है? ऐसा मत करो। – Ryan

+9

आप इसे ठीक करने के लिए अपने वेब सर्वर को कॉन्फ़िगर कर सकते हैं, लेकिन ऐसा लगता है कि यह क्रॉलर की तरह लगता है कि यह संभव नहीं है कि यह संभवतः – Cfreak

+0

परेशानी के लायक नहीं है, वास्तव में, डब्ल्यू 3 सी '& quot; के बजाय अर्धविराम ('; ') का उपयोग करने की सिफारिश करता है। '। लेकिन समर्थन ';' आमतौर पर सर्वर पर एक विन्यास परिवर्तन की आवश्यकता है। आपको अभी भी ';' पर रीडायरेक्ट करके '&' का समर्थन करना होगा, जब से 'टाइप = जीईटी' वाला HTML फॉर्म सबमिट करते समय ब्राउज़र आपको '' '' URL पर भेजता है। [लिंक] http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#hB.2.2 –

उत्तर

1

मुझे लगता है कि आप उम्मीद कर सकते हैं कि कोई भी प्रमुख क्रॉलर मान्य बच निकले यूआरएल को संभालने में सक्षम है। तो मैं बाकी के बारे में चिंता नहीं करूंगा।

यदि आप वास्तव में करना चाहते हैं तो आप अपने अपाचे या जो कुछ भी उपयोग करते हैं, उसे फिर से लिखना नियम जोड़ना चाह सकते हैं। लेकिन इससे अन्य समस्याएं हो सकती हैं जब एक यूआरएल में वास्तव में & का परिणाम होता है और त्रुटि के लिए आपके पुनःलेख नियम द्वारा & के साथ प्रतिस्थापित किया जाता है।

मेरी राय में यह छेड़छाड़ छोड़ना बेहतर है। यह आपकी गलती नहीं है और जब आप वास्तव में इन क्रॉलर की परवाह नहीं करते हैं - तो क्या? :)

-3

हाँ & एक आरक्षित चरित्र है लेकिन आप इसे वेबसाइट लिंक में नहीं डाल पाएंगे।

सही

<a href="mywebsite.com/?p1=v1&p2=v2">mywebsite.com/?p1=v1&amp;p2=v2</a> 

गलत

<a href="mywebsite.com/?p1=v1&amp;p2=v2">mywebsite.com/?p1=v1&amp;p2=v2</a> 
+0

सुनिश्चित नहीं है कि आपका बिंदु क्या है, लेकिन '& p2 = v2' एक है अमान्य HTML इकाई। वास्तविक सामग्री से बचने में भ्रमित मत हो। –

+0

सीधे आपके सही संस्करण पर http://validator.w3.org से: 'त्रुटि: और एक वर्ण संदर्भ प्रारंभ नहीं किया। (और शायद & के रूप में बच जाना चाहिए था।) mywebsite.com/?p1=v1&p2=v2 ' – Dorin

+0

वास्तव में, आपका सही संस्करण गलत है और आपका गलत संस्करण सही है। विरोधाभासी लगता है, लेकिन यह सच है! :) –

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