Đối với các phiên bản cũ của bịnh ghẻ hờm (bịnh ghẻ hờm-1.90 và dưới) câu trả lời dưới đây làm việc
Bây giờ, theo mặc định, bất cứ tiêu đề quy định như
[{header,"Server: MyOther Server Name"}]
, bịnh ghẻ hờm sẽ thi hành và thẻ tên và phiên bản của nó trước khi giá trị tiêu đề máy chủ của bạn, giống như điều này:
Server: Yaws 1.91, MyOther Server Name
. Điều này xảy ra khi chức năng
out/1
của bạn, bạn kết thúc với một giá trị tiêu đề, máy chủ như thế này:
out(_A)->
[{header,"Server: ASP.NET Server"},
{html,"<p>I love klacke and yaws ! </p>"}].
Kiểm tra trình duyệt của bạn, sử dụng Firebug bạn thấy các tiêu đề đáp ứng quy định như sau:
Date Thu, 17 Nov 2011 07:59:17 GMT
Content-Length 22
Content-Type text/html
Server Yaws 1.91, ASP.NET Server
Bây giờ giải pháp:
Trong yaws src
, có một mô-đun được gọi là yaws.erl
. Trong mô-đun này, kiểm tra xung quanh dòng: 1332
, bạn sẽ tìm thấy một chức năng như thế này:
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].
Đây là đoạn mã mà gắn thêm phiên bản bịnh ghẻ hờm và tên máy chủ trên tiêu đề máy chủ của bạn giá trị quy định. Chúng ta cần phải thay đổi nó và nhận xét ra các dòng và để cho nó trả về một empty list [ ]
hoặc empty string ""
trông như thế này:
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
bước cuối
Bây giờ chúng ta cần phải tái biên dịch module này và thay thế các bịnh ghẻ hờm hiện .beam tập tin trong YAWS-{VSN}/ebin
với tập tin kết quả mới .beam chúng tôi nhận được sau khi biên dịch nguồn mới này. Sau đó tải lại nó trong VM. Tôi hy vọng bạn có thể tìm thấy con đường của bạn trong bước cuối cùng này. Một cách để kéo này off là bằng cách thay đổi thư mục làm việc hiện tại của bịnh ghẻ hờm của bạn chạy erlang vỏ
1> cd("PATH/TO/YAWS/src").
PATH/TO/YAWS/src
Sau đó, thực hiện điều này (vẫn còn trong bịnh ghẻ hờm shell) sau khi thay đổi nguồn gốc của yaws.erl như chúng ta đã đề cập ở trên
2> c(yaws).
{ok,yaws}
Bây giờ hãy di chuyển tệp yaws.beam đã tạo từ src sang ebin. Ghi đè/thay thế các tập tin yaws.beam hiện trong ebin với một từ src
$ mv PATH/TO/YAWS/src/yaws.beam PATH/TO/YAWS/ebin/
Vì vậy, nếu bịnh ghẻ hờm đang chạy, nạp mã bằng cách nhập vào vỏ của nó:
3> l(yaws).
Đối với các phiên bản mới hơn của bịnh ghẻ hờm (bịnh ghẻ hờm -1,91 trở lên)
có một tham số, bạn sẽ chỉ cần thêm vào tập tin
yaws.conf
bạn
server_signature = "MY SERVER SIGNATURE"
và như vậy các tiêu đề sẽ đi kèm với
Server: MY SERVER SIGNATURE
cảm ơn, nhưng tôi phải thêm tiêu đề ** "Máy chủ:" ** của riêng mình mọi lúc mà tôi không quan tâm – user1051086
Có, đó là chi phí của điều đó. Tuy nhiên, bạn có thể thực hiện bất kỳ điều chỉnh lại nào đối với hàm trong 'yaws.erl' để luôn đặt tiêu đề bạn muốn thay vì nhận xét tất cả các mã. Trên thực tế thay vì trả về '[]' từ hàm, hãy để nó trả về tiêu đề của bạn để bạn không cần phải đặt nó trong mã của bạn mọi lúc –