dla starszych wersji frambezja (yaws-1.90 i poniżej) poniżej odpowiedź działa
Teraz domyślnie każdy nagłówek określony jako
[{header,"Server: MyOther Server Name"}]
, yaws wymusi i oznacz swoją nazwę i wersję przed wartością nagłówka serwera, jak to:
Server: Yaws 1.91, MyOther Server Name
. Dzieje się tak, gdy w funkcji
out/1
skończyć z wartością nagłówka, serwer jak ten:
out(_A)->
[{header,"Server: ASP.NET Server"},
{html,"<p>I love klacke and yaws ! </p>"}].
Sprawdzanie swoją przeglądarkę za pomocą Firebug widać nagłówki odpowiedzi określone w następujący sposób:
Date Thu, 17 Nov 2011 07:59:17 GMT
Content-Length 22
Content-Type text/html
Server Yaws 1.91, ASP.NET Server
Teraz rozwiązanie:
W wersjach src
znajduje się moduł o nazwie yaws.erl
. W ramach tego modułu, sprawdź wokół linii: 1332
znajdziesz funkcję tak:
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].
To jest kawałek kodu, który dołącza wersja frambezja i nazwę serwera na górze nagłówka serwera określonej wartości. Musimy to zmienić i ustosunkowania się linii i niech zwróci empty list [ ]
lub empty string ""
wyglądać tak:
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
Ostatni krok
Teraz musimy ponownie skompilować ten moduł i zastąpić istniejące frambezja plik .beam w YAWS-{VSN}/ebin
z nowym wynikowym plikiem .beam, który otrzymujemy po skompilowaniu tego nowego źródła. Następnie załaduj ponownie do VM. Mam nadzieję, że odnajdziesz swoją drogę w tym ostatnim kroku. Jednym ze sposobów ciągnąc ten off to zmieniając bieżący katalog roboczy swojego frambezja systemem erlang skorupę
1> cd("PATH/TO/YAWS/src").
PATH/TO/YAWS/src
Następnie wykonać to (wciąż w yaws shell) po zmianie źródła yaws.erl jak już wspomniano powyżej
2> c(yaws).
{ok,yaws}
Teraz przenieś wygenerowany plik yaws.beam z src do ebin. Zastępowanie/zastąpić istniejący plik yaws.beam w ebin z jednym z src
$ mv PATH/TO/YAWS/src/yaws.beam PATH/TO/YAWS/ebin/
Tak więc, jeśli yaws pracuje, przeładować ten kod, wprowadzając w jego powłoki:
3> l(yaws).
nowsze wersje frambezja (frambezja -1,91 i powyżej)
jest to parametr będzie po prostu dodać do pliku
yaws.conf
server_signature = "MY SERVER SIGNATURE"
i tak nagłówki przyjdzie z
Server: MY SERVER SIGNATURE
dziękuję, ale muszę dodać swój własny ** "Serwer:" ** nagłówek za każdym razem, co nie przeszkadza mi – user1051086
OH tak, to jest koszt tego. Ale cóż, możesz wprowadzić wszelkie poprawki do funkcji w 'yaws.erl', aby zawsze umieszczać żądany nagłówek zamiast komentować cały kod. Właściwie zamiast zwracania '[]' z funkcji, pozwól, aby zwrócił twój nagłówek, tak aby nie trzeba go było umieszczać w kodzie przez cały czas –