regex rewrite problem
Alexander Kolesen
kolesen.a at gmail.com
Wed Jan 18 22:32:43 UTC 2012
> Hello,
>
> I am new to this forum. Glad it exists. Thanks for that. I have a
> production website that uses nginx 0.8.53 reverse proxy in front of
> apache. I actually had little problem setting that up, but this simple
> regex is giving me a headache.
>
> For some reason, I am unable to take a URI like
> example.com/manufacturers/metlox/0?page=13 and change it to
> example.com/manufacturers/m It seems like the curly braces aren’t
> working.
>
> I’ve tried the following without results:
>
> location ~* /manufacturers/ {
> rewrite "^/manufacturers/(.{1})/(.*)$"
> /manufacturer/directory/$1 redirect;
> }
> location ~* /manufacturers/ {
> rewrite "^/manufacturers/([a-z] {1})/(.*)$"
> /manufacturer/directory/$1 redirect;
> }
>
> location ~* /manufacturers/ {
> rewrite "^/manufacturers/([a-z]?)/(.*)$"
> /manufacturer/directory/$1 redirect;
> }
>
> I am fairly new to regex, so maybe this is something simple. What I want
> to get is the first letter of first captured word. I am able to pull
> the entire word with (.*) for $1, but not the first letter only.
>
> Any help would be greatly appreciated!
>
> Thanks in advance.
>
Hello.
Try the following:
location /manufacturers/ {
location ~ ^/manufacturers/(.) {
return 301 /manufacturers/$1;
}
}
More information about the nginx
mailing list