per le versioni precedenti di framboesia (framboesia-1,90 e al di sotto) la risposta qui sotto funziona
Ora, per impostazione predefinita, qualsiasi intestazione specificato come
[{header,"Server: MyOther Server Name"}]
, yaws applicherà e targhetta suo nome e la versione prima del tuo valore dell'intestazione del server, come questo:
Server: Yaws 1.91, MyOther Server Name
. Ciò si verifica quando nella funzione
out/1
si finisce con un valore di intestazione, del server in questo modo:
out(_A)->
[{header,"Server: ASP.NET Server"},
{html,"<p>I love klacke and yaws ! </p>"}].
Controllo del browser, utilizzando Firebug si vede le intestazioni di risposta specificato come segue:
Date Thu, 17 Nov 2011 07:59:17 GMT
Content-Length 22
Content-Type text/html
Server Yaws 1.91, ASP.NET Server
Ora la soluzione:
In yaws src
, c'è un modulo chiamato yaws.erl
. In questo modulo, controllare attorno alla riga: 1332
, troverete una funzione come questa:
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].
Questo è il pezzo di codice che aggiunge la versione yaws e il nome del server in cima alla vostra intestazione del server valore specificato. Abbiamo bisogno di cambiare e commentare le righe e lasciarlo restituire un empty list [ ]
o empty string ""
per assomigliare a questo:
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
Ultimo passo
Ora abbiamo bisogno di ri-compilare questo modulo e sostituire le yaws esistenti .beam file in YAWS-{VSN}/ebin
con il nuovo file .beam risultante che otteniamo dopo aver compilato questa nuova fonte. Quindi ricaricarlo nella VM. Spero che tu possa trovare la tua strada in questo ultimo passo. Un modo di tirare fuori questo è di cambiare la directory di lavoro corrente dei yaws esecuzione di shell Erlang
1> cd("PATH/TO/YAWS/src").
PATH/TO/YAWS/src
Poi, eseguire questo (ancora nei yaws Shell) dopo aver cambiato la fonte del yaws.erl come abbiamo accennato in precedenza
2> c(yaws).
{ok,yaws}
Ora sposta il file yaws.beam generato da src a ebin. Sovrascrivere/sostituire il file esistente nella yaws.beam Ebin con quello da src
$ mv PATH/TO/YAWS/src/yaws.beam PATH/TO/YAWS/ebin/
Quindi, se framboèsia è in esecuzione, ricaricare il codice inserendo nel suo guscio:
3> l(yaws).
Per le versioni più recenti di yaws (framboesia -1,91 e sopra)
c'è un parametro che sarà solo aggiungere al vostro file di
yaws.conf
server_signature = "MY SERVER SIGNATURE"
e così le intestazioni sarà disponibile con
Server: MY SERVER SIGNATURE
grazie, ma devo aggiungere il mio ** "Server:" ** header ogni volta che non mi dispiace – user1051086
OH sì, questo è il costo di quello. Ma bene, puoi apportare delle modifiche alla funzione in 'yaws.erl' per inserire sempre l'intestazione che vuoi invece di commentare tutto il codice. In realtà invece di restituire '[]' dalla funzione, lascia che restituisca l'intestazione in modo che non sia necessario inserirlo nel codice per tutto il tempo –