Я настраиваю систему отслеживания ссылок, которая (временно) включает добавление / link / id / перед URL-адресом (например, http: // сервер / данные / идентификатор / публикация / идентификатор /).
rewrite data/id/(.*) http://server/$1;
Запрос регистрируется как:
ip - - [17/Nov/2011:10:07:19 +0300] "GET /data/id/publication/id.html HTTP/1.1" 302 154 "-" "UA"`
По какой-то причине (сохраняя совместимость с AWStats) требуется, чтобы в журнале регистрировалось 200 вместо 302. (nginx позволяет получить код 301 из коробки с постоянной опцией, но это тоже неуместно)
Какие у меня здесь варианты? Будет ли сочетание location { }
и rewrite
сделать работу?
ОБНОВЛЕНИЕ: AWstats может распознавать различные коды состояния, задавая ValidHTTPCodes="200 304 301"
, видеть этот вопрос; моя проблема решена, но вопрос все еще активен - как заставить перезаписи работать без кода 301/302?
Nginx выполняет перенаправление на стороне клиента, потому что цель перенаправления имеет http: // в URL-адресе - вы можете выполнить перенаправление на стороне сервера (nginx перечитает новый URL-адрес и отправит файл напрямую с кодом 200), просто имея rewrite data/id/(.*) /$1;