Назад | Перейти на главную страницу

nginx: перезаписать URL-адрес, но сохранить исходный URL-адрес в access.log как 200

Я настраиваю систему отслеживания ссылок, которая (временно) включает добавление / 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;