Ein Beispiel dafür finden Sie im Abschnitt "Arg Rewrite" (7.1.2) von the Yaws PDF documentation. Setzen Sie die Variable arg_rewrite_mod
in der Server-Konfiguration auf den Namen eines Erlang-Modul unterstützt Umschreiben:
arg_rewrite_mod = my_rewriter
Zur Unterstützung Umschreiben der my_rewriter
Modul muss definieren und exportieren Sie eine arg_rewrite/1
Funktion, einen #arg{}
Rekord als Argument nehmen:
-module(my_rewriter).
-export([arg_rewrite/1]).
-include_lib("yaws/include/yaws_api.hrl").
rewrite_pages() ->
["/listen"].
arg_rewrite(Arg) ->
Req = Arg#arg.req,
{abs_path, Path} = Req#http_request.path,
case lists:member(Path, rewrite_pages()) of
true ->
Arg#arg{req = Req#http_request{path = {abs_path, Path++".yaws"}}};
false ->
Arg
end.
Der Code enthält yaws_api.hrl
zum Abrufen der #arg{}
Datensatzdefinition.
Die Funktion rewrite_pages/0
gibt eine Liste der Seiten zurück, die neu geschrieben werden müssen, um ".yaws"
Suffixe einzuschließen; In diesem Beispiel ist es nur die Seite, die Sie in Ihrer Frage erwähnen. Wenn wir in arg_rewrite/1
die angeforderte Seite in dieser Liste finden, fügen wir ".yaws"
an den Seitennamen an und fügen sie in eine neue #arg{}
ein, die wir an Yaws zurücksenden, die dann die Anfrage basierend auf der neuen #arg{}
weiterschickt.