Nginx Rewrite Apache?

Francis Daly francis at daoine.org
Tue Apr 12 02:15:32 MSD 2011


On Mon, Apr 11, 2011 at 05:59:01PM -0400, Adrian Janeczek wrote:

Hi there,

> dosen't  work
> http://s1.rapidox.pl/QJNqq0821sxz7200DAp0/Si.s_sred.iowi.cze.part5.rar
> 
> http://s1.rapidox.pl/files/Si.s_sred.iowi.cze.part5.rar
> 
> rewrite >
> rewrite "^[A-Z]{3}[a-z]{2}\d{4}[a-z]{3}\d{4}[A-Z]{2}[a-z]\d/(.+)$"
> files/$1;

The nginx debug log is usually good.

In this case, you would see something like

"^[A-Z]{3}[a-z]{2}\d{4}[a-z]{3}\d{4}[A-Z]{2}[a-z]\d/(.+)$" does not match "/QJNqq0821sxz7200DAp0/Si.s_sred.iowi.cze.part5.rar", client: 127.0.0.1, server: , request: "GET /QJNqq0821sxz7200DAp0/Si.s_sred.iowi.cze.part5.rar

In nginx, the request starts with "/", so if you use "^", the next
character must match "/" or the regex won't match.

> i trying this but not work...
> rewrite "([A-Z] {3})([a-z] {2})([0-9] {4})([a-z] {3})([0-9] {4})([A-Z]
> {2})([a-z] {1})([0-9] {1})/(.+)$" /files/$1 last;

This fails to match because the spaces should not be there. The example on
the wiki should probably be fixed, if someone already has a login there?

If you erase the spaces, then the regex does match, but the replacement
$1 is "QJN", because of the parentheses.

Your original rewrite line wrapped in double quotes should work, with
the initial "^" changed to "^/" (and the replacement "files" becoming
"/files".

Good luck with it,

	f
-- 
Francis Daly        francis at daoine.org



More information about the nginx mailing list