याज के पुराने संस्करणों के लिए (याज-1.90 और नीचे) नीचे इस सवाल का जवाब
काम करता है अब, डिफ़ॉल्ट रूप से, किसी भी शीर्ष लेख
[{header,"Server: MyOther Server Name"}]
के रूप में निर्दिष्ट, याज लागू करने और अपने सर्वर हेडर मूल्य से पहले उसका नाम और संस्करण टैग करेगा, जैसे यह:
Server: Yaws 1.91, MyOther Server Name
। यह तब होता है जब आपके
out/1
समारोह में आप एक हैडर मूल्य, इस तरह सर्वर के साथ समाप्त:
out(_A)->
[{header,"Server: ASP.NET Server"},
{html,"<p>I love klacke and yaws ! </p>"}].
आपके ब्राउज़र जाँच हो रही है, का उपयोग कर Firebug आपके द्वारा निर्दिष्ट प्रतिक्रिया हेडर दिखाई इस प्रकार है:
Date Thu, 17 Nov 2011 07:59:17 GMT
Content-Length 22
Content-Type text/html
Server Yaws 1.91, ASP.NET Server
अब समाधान:
yaws src
में, yaws.erl
नामक एक मॉड्यूल है। इस मॉड्यूल में, रेखा के आसपास की जाँच करें: 1332
, तो आप इस तरह एक समारोह मिलेगा:
make_server_header() ->
HasDav = ?sc_has_dav(get(sc)),
["Server: ", (get(gc))#gconf.yaws, "\r\n" |
if HasDav == true ->
["DAV: 1\r\n"];
true ->
[]
end].
इस कोड का टुकड़ा है कि आपके सर्वर हेडर निर्धारित मूल्य के शीर्ष पर याज संस्करण और सर्वर नाम जोड़ देती है। हम इसे बदल सकते हैं और लाइनों बाहर टिप्पणी और यह एक empty list [ ]
या empty string ""
लौट इस तरह देखने के लिए जाने की जरूरत है:
make_server_header() ->
%%HasDav = ?sc_has_dav(get(sc)),
%%["Server: ", (get(gc))#gconf.yaws, "\r\n" |
%% if HasDav == true ->
%% ["DAV: 1\r\n"];
%% true ->
%% []
%% end].
[]. %% force it to just return empty
अंतिम चरण
अब हम इस मॉड्यूल को फिर से संकलन और मौजूदा याज प्रतिस्थापित करने की आवश्यकता YAWS-{VSN}/ebin
में .beam फ़ाइल नई परिणामी .beam फ़ाइल के साथ हम इस नए स्रोत को संकलित करने के बाद प्राप्त करते हैं। फिर इसे वीएम में पुनः लोड करें। मुझे उम्मीद है कि आप इस अंतिम चरण में अपना रास्ता खोज सकते हैं। इस बंद खींच करने का एक तरीका तो erlang खोल
1> cd("PATH/TO/YAWS/src").
PATH/TO/YAWS/src
चल अपने याज की वर्तमान कार्यशील निर्देशिका बदलकर है, इस पर अमल (अब भी में याज शेल) yaws.erl के स्रोत को बदलने के रूप में हम
2> c(yaws).
{ok,yaws}
ऊपर उल्लेख किया है के बाद
अब उत्पन्न yaws.beam फ़ाइल को src से ebin तक ले जाएं। ओवरराइट करें/src से
$ mv PATH/TO/YAWS/src/yaws.beam PATH/TO/YAWS/ebin/
तो एक साथ Ebin में मौजूदा yaws.beam फ़ाइल को बदलने, अगर याज चल रहा है, इसके खोल में दर्ज करके उस कोड को फिर से लोड:
3> l(yaws).
याज के नए संस्करण के लिए (याज -1.91 और ऊपर)
वहाँ एक पैरामीटर आप बस अपने
yaws.conf
फाइल करने के लिए जोड़ देगा
server_signature = "MY SERVER SIGNATURE"
और इसलिए हेडर के साथ आ जाएगा है
Server: MY SERVER SIGNATURE
धन्यवाद, लेकिन मुझे अपना खुद का ** "सर्वर:" ** हेडर जोड़ना होगा जब मुझे – user1051086
ओएच हाँ नहीं लगता है, तो इसकी लागत है। लेकिन अच्छी तरह से, आप सभी कोड को टिप्पणी करने के बजाय हमेशा इच्छित हेडर डालने के लिए 'yaws.erl' में फ़ंक्शन में कोई भी पुनः समायोजन कर सकते हैं। असल में फ़ंक्शन से '[]' लौटने की बजाय, इसे अपने हेडर को वापस करने दें ताकि आपको इसे हर समय अपने कोड में रखने की आवश्यकता न हो –