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