Использование мода rewrite для изменения URL с переменной имени пользователя

Как изменить следующий URL-адрес на стороне клиента

domain.com/profile/jung
domain.com/jung (preferable)

на серверный URL-адрес

domain.com/profile.php?user_id=100

с именем пользователя в переменной php?

Я знаю, что мне нужно отредактировать файл htaccess с помощью RewriteCond и RewriteRule, но мне все еще не ясно ...

Как Twitter управляет URL-адресами их пользовательских страниц?


person Jung    schedule 24.05.2009    source источник


Ответы (2)


Попробуйте это правило:

RewriteRule ^profile/([^/]+)$ profile.php?user_name=$1

Это перезапишет запросы /profile/ foobar на /profile.php?user_name= foobar. Обратите внимание, что вы можете просто переписать имя пользователя. Затем ваш сценарий должен будет найти идентификатор пользователя, если это необходимо.

person Gumbo    schedule 24.05.2009
comment
Спасибо, сработало! Есть ли простой способ удалить профиль / с URL-адреса? так что domain.com/jung тоже будет работать? В качестве альтернативы, если я переименовал profile.php в p.php и изменил rewriterule на ^ p /, повлияет ли это на все страницы, начинающиеся с буквы p? - person Jung; 24.05.2009
comment
Да, это можно было удалить. Но вы должны спросить себя, нужно ли это / полезно. См. stackoverflow.com / questions / 780311 / - person Gumbo; 24.05.2009
comment
Отлично, спасибо за это! Именно то, что я искал. Также о некоторых вещах, о которых я даже не думал. - person Jung; 25.05.2009

Проверьте функцию RewriteMap.

person Peter Rowell    schedule 24.05.2009