Запретить всё, кроме определённых локэйшинов. Как?
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