Запретить всё, кроме определённых локэйшинов. Как?

Sergey Shepelev temotor at gmail.com
Tue Jun 3 20:19:56 MSD 2008


Для скорости лучше сделать

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 at gmail.com> <mailto:deepmindster at gmail.com>:
>>   
>>> Доброго времени суток.
>>>
>>> Есть конфиг 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
>>>
>>>
>>>
>>>
>>>     
>>
>>
>>   
> 





More information about the nginx-ru mailing list