Location problems
Igor Sysoev
is at rambler-co.ru
Thu Feb 28 23:50:16 MSK 2008
On Thu, Feb 28, 2008 at 07:41:34PM +0000, Igor Clark wrote:
> On 19 Feb 2008, at 11:23, Denis F. Latypoff wrote:
> >
>
> >- location ~ /admin/.* {
> >+ location /admin { # not tested
>
> Thanks Denis, and sorry for the delay in replying.
>
> Unfortunately that didn't work, and I'm still having the same sort of
> problems with the location directive.
>
> On another PHP site, I'm trying to restrict access to /admin via IP.
> I have the following config, which works fine, though perhaps not
> optimal:
>
> > server {
> > listen 80;
> > server_name server.name;
> >
> > access_log /path/to/logs/access.log main;
> > error_log /path/to//logs/error.log info;
> >
> > location / {
> > root /path/to//public;
> > index index.php index.html;
> >
> > # if requesting /, rewrite to frontend.php and stop
> > rewrite ^/$ /frontend.php last;
> >
> > # Set $control_path to $my_request_uri, in case there
> >are any
> > # custom rules above that might have changed it
> > # Then, rewrite using the last rules
> > if (!-e $request_filename) {
> > rewrite ^/admin/(.*)$
> > /admin.php?CONTROL_PATH= $1 last;
> > rewrite ^/speakers/(.+)/?$
> > /speakers/video/$1;
> > rewrite ^/financethemes/(.+)/?$
> > /financethemes/ video/$1;
> > rewrite ^/transcripts/(speaker|theme)/(.+)/?$ /
> >transcripts/view/$1/$2;
> > rewrite ^(.*)$
> > /frontend.php?CONTROL_PATH=$1 last;
> > }
> >
> > location ~ \.flv$ {
> > flv;
> > }
> >
> > location /admin {
> > allow 82.108.140.18;
> > deny all;
> > }
> >
> > # pass the PHP scripts to FastCGI server listening on
> >127.0.0.1:9999
> > location ~ \.php$ {
> > fastcgi_pass 127.0.0.1:9999;
> > fastcgi_index index.php;
> > fastcgi_intercept_errors on;
> > include conf/fastcgi_params;
> > }
> > }
> > error_page 404 /404.html;
> > error_page 500 /500.html;
> > }
>
> 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;
}
>
> How should I go about this? Where should I put the /admin location
> block? Nothing I do seems to work. I understand that the first matched
> regular expression stops the search, but as I can't seem to get
> nesting locations to work, what should I do?
> location /admin {
> allow 1.2.3.4;
> deny all;
> }
> (By the way, this is the first time we've used the FLV module, and
> we're really pleased with the results, so thanks!)
>
> Best wishes
> Igor
>
> On 19 Feb 2008, at 11:23, Denis F. Latypoff wrote:
>
> >Hello Igor,
> >
> >Tuesday, February 19, 2008, 5:04:48 PM, you wrote:
> >
> >>Hi folks,
> >
> >>I often have problems trying to use different locations without
> >>having
> >>to duplicate config.
> >>I think I must be thinking about it the wrong way!
> >
> >>Basically I just want to make /admin/ password-protected, but inherit
> >>all the other config.
> >
> >>So I tried this:
> >
> >> location / {
> >> include /path/to/php.conf; # includes all
> >>fastcgi stuff and some
> >>rewrites
> >> location ~ /admin/.* {
> >> auth_basic "Restricted";
> >> auth_basic_user_file /path/to/
> >>admin.htusers;
> >> }
> >> }
> >
> >>But it doesn't work, so I tried this way which I've made work before:
> >
> >> location / {
> >> include /path/to/php.conf;
> >> }
> >
> >- location ~ /admin/.* {
> >+ location /admin { # not tested
> >> auth_basic "Restricted";
> >> auth_basic_user_file /path/to/admin.htusers;
> >> include /path/to/php.conf;
> >> }
> >
> >>But this doesn't work either, it includes the PHP file but doesn't do
> >>the auth, and there's no error in the log. I've tried various
> >>permutations on ~ /admin/.* too.
> >
> >>What am I doing wrong?
> >
> >>Many thanks,
> >>Igor
> >
> >>--
> >>Igor Clark // POKE // 10 Redchurch Street // E2 7DD // +44 (0)20 7749
> >>5355 // www.pokelondon.com
> >
> >
> >
> >--
> >Best regards,
> >Denis mailto:denis at gostats.ru
> >
> >
>
> --
> Igor Clark // POKE // 10 Redchurch Street // E2 7DD // +44 (0)20 7749
> 5355 // www.pokelondon.com
>
>
>
>
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list