yawsファイルに拡張子を含めずにアクセスするにはどうすればよいですか? 、Yaws/ErlangでURLを書き換える方法
www.domain.com/listen.yaws =>www.domain.com/listen
を言って、私はyaws
ドキュメント/ appmodから、このための具体的な資料を見つけることができませんでした。
私は質問が最終的に明らかになると思います!
yawsファイルに拡張子を含めずにアクセスするにはどうすればよいですか? 、Yaws/ErlangでURLを書き換える方法
www.domain.com/listen.yaws =>www.domain.com/listen
を言って、私はyaws
ドキュメント/ appmodから、このための具体的な資料を見つけることができませんでした。
私は質問が最終的に明らかになると思います!
「Arg Rewrite」セクション(7.1.2)のthe Yaws PDF documentationにこれを実現する方法の例があります。書き換えをサポートするために
arg_rewrite_mod = my_rewriter
、my_rewriter
モジュールは、その引数として#arg{}
記録を取って、arg_rewrite/1
関数を定義し、エクスポートする必要があります:書き換え支えるErlangのモジュールの名前にサーバー構成内の変数arg_rewrite_mod
を設定
-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.
#arg{}
レコード定義を取得するコードには、yaws_api.hrl
が含まれています。
rewrite_pages/0
関数は、".yaws"
の接尾辞を含むように書き換えなければならないページのリストを返します。この例では、あなたの質問に言及したのはちょうど/listen
ページです。 arg_rewrite/1
でリクエストされたページが見つかった場合は、ページ名に".yaws"
を追加し、それを新しい#arg{}
に含めてYawsに返します。これにより、新しい#arg{}
に基づいて要求が引き続き送信されます。