На первый взгляд вопрос простой.. Как определить точный URL в PHP, который отображается в браузере? 
Наглядный пример. 
Есть ссылка такого рода 
http://site.com/@user, которая ведет на страницу пользователя
На сервере следующий код, который просто отображает текущий URL
print_r("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
Результат очевидный 
http://site.com/@user
Но если я заменю знак "
@" на "
%40" в ссылке (
что является тем же знаком) то результат тот же.
Ссылка: 
http://site.com/%40userРезультат: 
http://site.com/@user
Задача понять, если URL вида 
http://site.com/%40user, то сделать редирект на 
http://site.com/@user
Возможно проверки/редирект нужно ставить раньше, на стороне nginx/apache?