nginx rewrite rules conditional once again
Malte Geierhos
malte at snapscouts.de
Tue Jun 29 19:27:20 MSD 2010
Hi List,
I've got to convert some Apache Rewrite Rules to work with nginx.
And i got kind of stuck in between how to solve this.
The old rewrite rule is like this :
RewriteCond %{REQUEST_URI} !/[0-9]+$
RewriteCond %{REQUEST_URI} ^/(articles|people)/favorites
RewriteRule ^(articles|people)/(.*)/$ /$1/$2/1/25 [R=301,L]
### /fragen/beliebte
RewriteCond %{REQUEST_URI} !/[0-9]+$
RewriteCond %{REQUEST_URI} ^/(articles|people)/favorites
RewriteRule ^(articles|people)/(.*) /$1/$2/1/25 [R=301,L]
so basically its catching those with ^/articles/favorites/what and
^/articles/favorites/
and append /1/25 and most important - ignore when there is already /2/40
or whatever.
At first i was looking into solving it with a location with something
like :
location ~* ^/(articles|people)([^/]*)$ {
rewrite ^/(articles|people)/(.*)$ /$1/$2/1/25;
}
but this did not work out as expected.
My next idea was to try to catch $2/$3 and see if its a number
like :
location ~* ^/(articles|people)/(.*)$ {
if ( $request_arg !~ [0-9]) {
rewrite ^/(articles|people)/(.*)$ /$1/$2/1/25;
}
}
hm but now i'm stuck.
Anyone got an idea ?
regards,
Malte
More information about the nginx
mailing list