Простой редирект средствами nginx
Mike Kolesnikov
mozilla_bugs at mail.ru
Wed Feb 2 12:21:35 MSK 2005
Добрый день.
Что-то никак не могу заставить работать средствами nginx такой вот
простейший редирект:
RedirectMatch 301 ^/forums/$ /forums/index.php
Вроде бы такая конструкция должна прокатить:
location = /forums/ { redirect /forums/index.php; }
но nginx-овский redirect зачем-то прицепляет паттерн в конец URI,
и выходит вот что:
2005/02/02 12:06:23 [debug] 18419#0: *2 find location: = "/forums/"
2005/02/02 12:06:23 [debug] 18419#0: *2 http cl:-1 max:1048576
2005/02/02 12:06:23 [debug] 18419#0: *2 http redirect handler
.....
Location: http://127.0.0.1:8080/forums/index.phpforums/
Более того, в следующем цикле URL опять почему-то совпадает, хотя
по идее не должен, получается:
2005/02/02 12:13:15 [debug] 18535#0: *2 find location: "/"
2005/02/02 12:13:15 [debug] 18535#0: *2 find location: = "/forums/"
2005/02/02 12:13:15 [debug] 18535#0: *2 find location: ~ "^.+\.php$"
2005/02/02 12:13:15 [debug] 18535#0: *2 http cl:-1 max:1048576
--> 2005/02/02 12:13:15 [debug] 18535#0: *2 http redirect handler <-- ?????
.....
Location: http://127.0.0.1:8080/forums/index.phpforums/index.phpforums/
Почему вылезает отмеченная строчка, ведь location /forums/ не совпал?
Ну и на следующем этапе:
http://127.0.0.1:8080/forums/index.phpforums/index.phpforums/index.phpforums/
и т.п.
Что я делаю не так? Может, какое-то непонимание логики работы location
и редиректов?
Да, кстати, как бы еще добавить в redirect возможность указывать 301 :)
Мой конфиг:
worker_processes 1;
error_log logs/error.log;
pid logs/nginx.pid;
events {
use rtsig;
connections 1024;
}
http {
include conf/mime.types;
default_type application/octet-stream;
server {
listen 8080;
access_log off;
rewrite_log on;
location = /forums/ { redirect /forums/index.php; }
location ~* ^.+\.php$ {
fastcgi_pass localhost:1234;
fastcgi_root /usr/local/nginx/html;
fastcgi_index index.php;
fastcgi_connect_timeout 10;
fastcgi_send_timeout 2m;
fastcgi_read_timeout 3m;
fastcgi_header_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 64k;
fastcgi_x_powered_by off;
}
location / {
root html;
index index.htm index.html index.php;
}
}
}
More information about the nginx-ru
mailing list