Правило перезаписи всегда перенаправляет на неправильный URL

Привет всем!
Мне нужно переписать http://mysite.com/user/profile/following?profile_name=MYNAME на http://mysite.com/user/profile/MYNAME/following

Я написал такое правило:

RewriteRule user/profile/(.*)/(.*) /user/profile/$2?profile_name=$1 [L,R=301]  

когда я помещаю URL-адрес типа http://mysite.com/user/profile/MYNAME/following в браузере он всегда перенаправляет меня на http://mysite.com/user/profile/following?profile_name=MYNAME

Что я пропустил?

Заранее спасибо


person Awlad Liton    schedule 24.10.2013    source источник


Ответы (1)


Вы можете использовать этот код:

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+user/profile/([^?]+)\?profile_name=([^\s&]+) [NC]
RewriteRule ^ /user/profile/%1/%2? [R=301,L]

# internal forward from pretty URL to actual one
RewriteRule ^user/profile/([^/]+)/([^/]*)/?$ /user/profile/$2?profile_name=$1 [L,NC,QSA]  
person anubhava    schedule 24.10.2013
comment
Спасибо. Но тот же результат :( - person Awlad Liton; 24.10.2013
comment
Какой URL вы ввели в браузере, это http://mysite.com/user/profile/following?profile_name=MYNAME? - person anubhava; 24.10.2013
comment
Также вы можете опубликовать свой полный .htaccess в своем вопросе? - person anubhava; 24.10.2013
comment
Это внутренне станет /user/profile/following?profile_name=MYNAME (URL не изменится в браузере) - person anubhava; 24.10.2013