Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: запрет прямого доступа к файлу news.php
> On Sat, Nov 21, 2009 at 09:48:06PM +0300, actionmanager@xxxxxxxxx wrote:
>> > actionmanager@xxxxxxxxx wrote:
>> >> Здравствуйте,
>> >>
>> >> при обращении:
>> >> http://site.ru/news/2009/
>> >> http://site.ru/news/view/20/
>> >> http://site.ru/news/
>> >>
>> >> запросы поступают на news.php
>> >>
>> >> есть следующий конфиг:
>> >>
>> >> location /news/ {
>> >> root /home/site.ru;
>> >> rewrite "^/news/((\d{4}))/?" /news.php?year=$1 last;
>> >> rewrite "^/news/view/((\d{2,5}))/?" /news.php?view=$1 last;
>> >> rewrite ^/news/$ /news.php last;
>> >> }
>> >>
>> >> всё работает, но необходимо запретить прямой вызов файла news.php
>> >>
>> >> http://site.ru/news.php
>> >>
>> >> посоветуйте пожалуйста как правильно это сделать.
>>
>> > location = /news.php {
>> > internal;
>> > }
>>
>>
>> неа, не хочет(
>> 404 выдаёт на news.php и тут везде:
>>
>> http://site.ru/news/2009/
>> http://site.ru/news/view/20/
>> http://site.ru/news/
> Должно работать - только что проверил.
Здравствуйте,
версия nginx-0.8.26
система Debian Linux 5.0
используется php-fpm
404 страница выдаётся как для news.php так и для запросов:
http://site.ru/news/2009/
http://site.ru/news/view/20/
http://site.ru/news/
причём именно из-за:
location = /news.php {
internal;
}
убираю этот location и тогда работает rewrite нормально, но также доступен
прямой доступ к http://site.ru/news.php
полный конфиг:
server
{
listen 127.0.0.1:80;
server_name site.ru;
client_max_body_size 50m;
charset utf-8;
access_log logs/site.ru_access.log main;
error_log logs/site.ru_error.log error;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /home/site/www/site.ru;
internal;
}
error_page 404 /404.html;
location = /404.html {
root /home/site/www/site.ru;
internal;
}
location = /favicon.ico {
empty_gif;
}
location / {
root /home/site/www/site.ru;
index index.php;
}
location /news/ {
root /home/site/www/site.ru;
rewrite "^/news/((\d{4}))/?" /news.php?year=$1 last;
rewrite "^/news/view/((\d{1,5}))/?" /news.php?view=$1 last;
rewrite ^/news/$ /news.php last;
# /news/2009/
# /news/view/20/
# /news/
}
location = /news.php {
internal;
}
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
root /home/site/www/site.ru;
access_log off;
}
location ~ \.php$ {
root /home/site/www/site.ru;
try_files $uri =404;
fastcgi_intercept_errors off;
fastcgi_pass unix:/var/run/php5/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/home/site/www/site.ru$fastcgi_script_name;
include fastcgi_params;
}
}
|