| Nginx-ru mailing list archive (nginx-ru@sysoev.ru) [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: Запретить всё, кроме  определённых локэйшинов.  Как?
 
To: nginx-ru@xxxxxxxxxSubject: Re: Запретить всё, кроме  определённых локэйшинов.  Как?From: Sergey Shepelev <temotor@xxxxxxxxx>Date: Tue, 03 Jun 2008 20:19:56 +0400Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;        d=gmail.com; s=gamma;        h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding;        bh=DNwzIsYJktfkfg0KOQ+cxHh3jv1hASJF93P8DDvCkd4=;        b=sgPACAxmccDvHCQ+dY8kQkr9yByEhaWSdFahW8szwTBgTmPVLYPY3vk07/EiZv9u5YFI7XefTgH25PHMKj0tqjcqFNx1c/4QWK6yqZ3qlmyCFpk6TV267vriMHqw2C/nGD9Afv1yupxvog5TdiBWocCB4W3woSfn2ykT5tGHMV8=Domainkey-signature: a=rsa-sha1; c=nofws;        d=gmail.com; s=gamma;        h=message-id:date:from:user-agent:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding;        b=mc1JOrwif8sJjLdJetQ0ic52sIOZ289yPUVENE12N247o5E0sItn6L7XtS3vGCzZqXb/hjZsxFsHD0/L7jxpcd7ktKQjjVfWHv09YMsCgqkJL0LmBGLEl8J228L5Z3QdFLxdIqczTaiSlS8kOvoVjR2aJCWOb9bCnAdpyNNH47M=In-reply-to: <48456804.6030108@xxxxxxxxx>References: <48455957.4070903@xxxxxxxxx> <91c9771b0806030814u5340f9e2hf00b073891c22dd@xxxxxxxxxxxxxx> <48456804.6030108@xxxxxxxxx> 
 
Для скорости лучше сделать
location = / { rewrite / /index.php?page=nosuch last; }   # если я 
правильно понял, индекс нужно закрыть 
location / {
  rewrite /no-such-page /index.php?page=nosuch last;
  rewrite /tech-problems /tech-problems.html last;
  error_page 404 = /index.php last;
# это не совсем ^/([^\/]+/$ но как частный случай работает и работает 
намного быстрее. Вордпресс с этим у меня нормально работает. Речь ведь 
про вордпресс, да?
  deny all;
}
Андрей пишет:
 
  Спасибо, не помогло :)
Но на мысль (совместно с другим письмом) натолкнуло. Убрал
location ~ / {
    deny all;
}
совсем, а location ^~ / { переписал в виде
      location / {
          rewrite /no-such-page /index.php?page=nosuch last;
          rewrite /tech-problems /tech-problems.html last;
          rewrite ^/([^\/]+)/$ /index.php?page=$1 last;
          deny all;
      }
вроде работает.
Тему можно считать закрытой.
Спасибо.
Андрей.
Борис Долгов пишет:
Тогда в конец:
location = / {
    rewrite / /index.php?page=nosuch last;
}
2008/6/3 Андрей <deepmindster@xxxxxxxxx> <mailto:deepmindster@xxxxxxxxx>:
Доброго времени суток.
Есть конфиг nginx-а, собственно, всё в этом конфиге хорошо и всё устраивает,
единственная проблема - по запросу example.com/ выдаётся ответ forbidden, а
хотелось бы видеть no-such-page.
конфиг примерно такой:
 server {
      listen  xxx.xxx.xxx.xxx:80;
      server_name  example.com;
      root            /srv/www/vhosts/example.com
      index           no-such-page;
      access_log      /var/log/nginx/example.com.access.log       main;
      error_page      404 403                 =200    /no-such-page;
      error_page      500 501 502 503 504     =200    /tech-problems;
      client_max_body_size       16k;
      client_body_buffer_size    16k;
      location ^~ / {
          rewrite /no-such-page /index.php?page=nosuch last;
          rewrite /tech-problems /tech-problems.html last;
          rewrite ^/([^\/]+)/$ /index.php?page=$1 last;
      }
      location = /robots.txt {
      }
      location = /tech-problems.html {
      }
      location = /index.php {
          fastcgi_pass   127.0.0.1:1026;
          fastcgi_param  SCRIPT_FILENAME
 /srv/www/vhosts/example.com$fastcgi_script_name;
          include fastcgi_params;
          internal;
      }
      location /images_special {
          root /srv/www/vhosts/example.com;
          internal;
          expires 8h;
      }
      location ~ / {
          deny all;
      }
  }
подскажите, как добится желаемого, пжл. Ну и может общие замечания-советы,
тоже буду рад. Спасибо.
nginx 0.6.31
 
 
 
 
 |