Re: ЧПУ и 301 redirect

Maxim Dounin mdounin at mdounin.ru
Sun Nov 11 12:24:04 UTC 2012


Hello!

On Sun, Nov 11, 2012 at 03:01:47AM -0500, Renat wrote:

> Если человек зашел по ссылке: /?page={a}&lang={b}
> Его необходимо перенаправить на:  /{a}/{b}
> 
> Пришел к такой конструкции:
> location / {
> if ($args ~* "/?page=[a-z0-9]+&lang=[a-z]+") {
> rewrite ^ /$arg_page/$arg_lang? permanent;
> }
> }
> rewrite ^/([a-z0-9]+)/([a-z]+)(/?)+$ /?page=$1&lang=$2 last;
> 
> Таким образом зайдя по ссылке "/?page=test$lang=ru" nginx перенаправляет на
> "/test/ru".
> Но открыв страницу "/test/ru". Nginx выдает ошибку "Moved Permanently".
> Подскажите пожалуйста, что я не так делаю?

Ну так для "/test/ru" у вас делается rewrite в 
"/?page=test&lang=ru", и следом за этим опять перенаправление на 
"/test/ru".  Т.е. nginx делает ровно то, что вы написали.  Вопрос 
состоит в том, что вы хотели написать, т.е. что нужно делать с 
"/test/ru".

-- 
Maxim Dounin
http://nginx.com/support.html



Подробная информация о списке рассылки nginx-ru