1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
-module(rewriter).
-export([arg_rewrite/1]).
-include_lib("yaws/include/yaws_api.hrl").

arg_rewrite(ARG) ->
    Req = ARG#arg.req,
    case Req#http_request.path of
        {abs_path, RawPath} ->
	    case (catch yaws_api:url_decode_q_split(RawPath)) of
		{'EXIT', _} -> %%broken request - ignore let yaws_server handle it.
		    ARG2 = ARG;
		{DecPath, QueryPart} ->
		    %%
		    %% Ce module est un catch all
		    %%
		    case filelib:is_file(ARG#arg.docroot ++ DecPath) of
			true ->
			    ARG2 = ARG;
			false ->
			    %%
			    %% Do something with DecPath & QueryPart
			    %%
			    Rewritten = "/index.php" ++ "?" ++ QueryPart,
			    %%
			    %%	
			    Req2 = Req#http_request{path = {abs_path, Rewritten}},
			    ARG2 = ARG#arg{req = Req2}
		    end	
	    end;
        _Else ->
	    ARG2 = ARG
    end,	

    ARG2.