diff options
Diffstat (limited to 'archives/extend/2015-January/000507.html')
-rw-r--r-- | archives/extend/2015-January/000507.html | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/archives/extend/2015-January/000507.html b/archives/extend/2015-January/000507.html new file mode 100644 index 00000000..a16a39c2 --- /dev/null +++ b/archives/extend/2015-January/000507.html @@ -0,0 +1,100 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + <HEAD> + <TITLE> [99s-extend] Rewriting URLs + </TITLE> + <LINK REL="Index" HREF="index.html" > + <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Rewriting%20URLs&In-Reply-To=%3C1422366254.30127.15.camel%40gmail.com%3E"> + <META NAME="robots" CONTENT="index,nofollow"> + <style type="text/css"> + pre { + white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */ + } + </style> + <META http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <LINK REL="Previous" HREF="000506.html"> + <LINK REL="Next" HREF="000508.html"> + </HEAD> + <BODY BGCOLOR="#ffffff"> + <H1>[99s-extend] Rewriting URLs</H1> + <B>Paul Dickson</B> + <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Rewriting%20URLs&In-Reply-To=%3C1422366254.30127.15.camel%40gmail.com%3E" + TITLE="[99s-extend] Rewriting URLs">pdtwonotes at gmail.com + </A><BR> + <I>Tue Jan 27 14:44:14 CET 2015</I> + <P><UL> + <LI>Previous message: <A HREF="000506.html">[99s-extend] Rewriting URLs +</A></li> + <LI>Next message: <A HREF="000508.html">[99s-extend] Rewriting URLs +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#507">[ date ]</a> + <a href="thread.html#507">[ thread ]</a> + <a href="subject.html#507">[ subject ]</a> + <a href="author.html#507">[ author ]</a> + </LI> + </UL> + <HR> +<!--beginarticle--> +<PRE>Ok, here is all the code in bz_libmap.erl + +execute(Req, Env) -> + Path = cowboy_req:path(Req), + Parts = filename:split(Path), + + case cowboy_req:method(Req) of + <<"GET">> -> + % Check for "/music/" requests + rewrite( Parts, Req, Env ); + _Other -> + {ok, Req, Env} + end. + +rewrite( [<<"/">>, <<"music">>, LibName | UrlParts], Req, Env ) -> + % We want URLs of the form "/music/LIBNAME/everythingelse" + % Get library definition. If we do not know that name, then they + % are asking for something that does not exist. + case bz_db:get_library( LibName ) of + [] -> + io:format("No such library '~s'~n", [LibName] ), + {stop, cowboy_req:reply(404, Req)}; + + L when is_record(L,library) -> + % Replace the library name with the library base. + % This will be the head of an absolute file path. + LibBase = L#library.base, + NewPath = filename:join([LibBase | UrlParts]), + NewInfo = filename:split(NewPath), + Req2 = cowboy_req:set( [ + {path_info,[NewPath]}, + {path, [NewPath]}], Req), + {ok, Req2, Env} + end; +rewrite( _AnythingElse, Req, Env ) -> + {ok, Req, Env}. + + + +</PRE> + + +<!--endarticle--> + <HR> + <P><UL> + <!--threads--> + <LI>Previous message: <A HREF="000506.html">[99s-extend] Rewriting URLs +</A></li> + <LI>Next message: <A HREF="000508.html">[99s-extend] Rewriting URLs +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#507">[ date ]</a> + <a href="thread.html#507">[ thread ]</a> + <a href="subject.html#507">[ subject ]</a> + <a href="author.html#507">[ author ]</a> + </LI> + </UL> + +<hr> +<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend +mailing list</a><br> +</body></html> |