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

Андрей deepmindster at gmail.com
Tue Jun 3 20:59:01 MSD 2008


Sergey Shepelev пишет:
> Для скорости лучше сделать
>
> 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