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