Location problems

Igor Clark igor at pokelondon.com
Fri Feb 29 14:13:48 MSK 2008


Hi Igor,

Everything that doesn't exist as a file gets routed to either / 
frontend.php, or /admin.php if the URI starts with /admin. If so, it's  
IP-restricted in this case, basic_auth protected in other cases.

So we want to be able to do:

/	->	/frontend.php	-> fastcgi

/speakers/show/all	-> /frontend.php?control_path=/speakers/show/all	->	 
fastcgi

/admin	->	/admin.php	->	fastcgi, protected

/admin/speakers/edit/32		/admin.php?control_path=/admin/speakers/edit/ 
32	->	fastcgi, protected

I'm just wondering whether our approach of "rewrite first, then deal  
with locations" is just wrong, maybe we should deal with locations  
first and then rewrite if necessary.

Thanks for your help,
Igor

On 29 Feb 2008, at 10:42, Igor Sysoev wrote:

> On Fri, Feb 29, 2008 at 09:39:20AM +0000, Igor Clark wrote:
>
>> Hi Igor, thank you very much. When I did
>>
>> 	location ~^ /admin/
>>
>> it still gave a 404, but when I changed it to
>>
>> 	location ~^ /admin.php
>>
>> it worked perfectly. Seems I've been trying to apply "location" to  
>> pre-
>> rewrite URLs, which just won't work - is that right?
>
> Could you write what URIs and how you want to handle, for example:
>
>       /       -> fascgi
>       /admin/ -> fascgi, auth protected
>      ...
>
> ?
>
>> On 28 Feb 2008, at 20:50, Igor Sysoev wrote:
>>
>>> On Thu, Feb 28, 2008 at 07:41:34PM +0000, Igor Clark wrote:
>>>
>>>> I just want to do the following, but still have all the other
>>>> directives work, so that rewrites and PHP work under /admin:
>>>
>>>       fastcgi_index                index.php;
>>>       fastcgi_intercept_errors     on;
>>>       include                      conf/fastcgi_params;
>>>
>>>       location ^~ /admin/ {
>>>
>>>           allow   1.2.3.4;
>>>           deny    all;
>>>
>>>           location ~ \.php$ {
>>>               fastcgi_pass         127.0.0.1:9999;
>>>           }
>>>       }
>>>
>>>       location ~ \.php$ {
>>>           fastcgi_pass             127.0.0.1:9999;
>>>       }
>
>
> -- 
> Igor Sysoev
> http://sysoev.ru/en/
>

--
Igor Clark // POKE // 10 Redchurch Street // E2 7DD // +44 (0)20 7749  
5355 // www.pokelondon.com









More information about the nginx mailing list