Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: error_page и данны е
постить на /blablabla/ нельзя :)
по определению
но никто не мешает вместо 404 обработчика
использовать if(-f) / if(-d)
например так
location = /index.php
{
# fastcgi stuff here
}
location /
{
root /home/u_cache/;
if ( $request_method = "POST" )
{
rewrite / /index.php last;
}
if (-f $request_filename)
{
break;
}
set $full_request_filename $request_filename;
if (-d $request_filename)
{
set $full_request_filename $request_filename/index.html;
}
if (!-f $full_request_filename)
{
rewrite / /index.php last;
}
}
On 24.04.2007, at 15:46, Dmitriy MiksIr wrote:
Не секрет, что многие используют обработчик 404 для передачи данных
в бекенд. Включая меня. Т.е. используется все приблизительно так:
location / {
root /content/cache;
error_page 404 = /index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:8888;
fastcgi_intercept_errors off;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT $lroot/httpd/www;
fastcgi_param SCRIPT_FILENAME $lroot/httpd/www
$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $lroot/httpd/www
$fastcgi_script_name;
include conf/fastcgi_params;
}
Проблему обнуления query_string я нашел как решить в архиве
рассылки (хотя решение, имхо, не очень красивое и не особо понятно,
зачем вообще нужно обнуление query_string при обработке 404). А вот
POST-ить данные не получается... если делают пост на /blablabla/dir
то выдает 405, если на /blablabla/dir/ то ошибки не возникает, но
и пост не уходит в бекенд. Можно, конечно, постить на /blablabla/
dir/index.php но в силу некоторых особенностей не хотелось бы так
поступать.
Что еще можно придумать?
Алексей Бещёков
proforg@xxxxxxxxxxxx
+7 495 7853149
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
|