Я предполагаю, что на вашем собственном сайте вы всегда будете создавать каноническую форму URL, например:
/user/Aditya-Shukla
... и вам просто придется иметь дело с внешними ссылками, которые не являются каноническимиform, то есть "старые ссылки", такие как:
www.example.com/user.php?user_id=9
mod_rewrite, может не подходить для переназначения в этой ситуации.Я предполагаю, что у вас может быть очень много пользователей, и это число может возрасти.У mod_rewrite есть директива RewriteMap, и да, есть способы динамически генерировать вашу карту, но я не думаю, что это было бы хорошим дизайном (динамически создавать карту userId-to-userName каждый раз, когда ваше правило перезаписи совпадает ...)
Вместо этого вам просто нужно написать свой код user.php, чтобы найти правильное имя пользователя, собрать желаемую каноническую форму URL-адреса и отправить перенаправление обратно клиенту.Что-то вроде:
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.example.com/user/Aditya-Shukla" );
Возможно, вам также следует использовать редирект 301 (вместо 302), чтобы указать, что это «постоянное» изменение URL, которое поможет поисковым роботам правильно проиндексировать ваш сайт, если он встретит «URL "старого стиля".
-broc