On 01/22/2010 01:45 AM, Marcus Clyne wrote:
> Hi,
>> Cliff Wells wrote:
>> On Thu, 2010-01-21 at 22:10 +0100, Dennis J. wrote:
>>> Hi,
>>> I'm trying to configure a vhost where in the default case I want it
>>> to get the files from /opt/nginx/html but when the uri starts with
>>> "/users/" I want to to deliver the files from /web/users/ instead:
>>>>>> location / {
>>> root /opt/nginx/html;
>>> index index.html index.htm;
>>> }
>>>>>> location ~* ^/users/ {
>>> root /web/users;
>>> rewrite ^/users(/.*) $1 last;
>>> }
> The reason why you're having problems is the 'last' tag on the rewrite,
> which will end the rewrite rules and then look for the corresponding URL
> (which sends it back to the first location). Using 'break' instead would
> prevent this, and do as you expect. However, for this situation, the
> second regex is an unnecessary waste of processing.
Once the server configuration is complete it will be much more complex than
the one above. That was only a simplified example to illustrate the
problem. I didn't now that a "last" would send nginx back to the location
stage of processing. With that in mind the processing makes sense of
course. Thanks for the explanation!
Regards,
Dennis