2015-11-11 4 views
0

Я хочу использовать .htaccess для преобразования URL-адресов, которые ссылаются на страницы профиля с идентификационного номера на имя. К примеру, на Facebook, если вы должны были пойти на:Использовать .htaccess для преобразования идентификаторов пользователей в имена пользователей?

https://facebook.com/profile.php?id=4 

Было бы вас на странице профиля Марка Цукерберга. Тем не менее, вы также можете просто перейти к:

https://facebook.com/zuck 

... который более удобен для пользователя и его легче запомнить. Как использовать htaccess для преобразования идентификационного номера в имя пользователя? Нужно ли мне отправлять его на php-скрипт для обработки и отправки имени?

ответ

4

Вы не можете указать .htaccess, потому что вам нужно будет получить имя пользователя для этого идентификатора из вашей базы данных, однако вы можете использовать PHP для этого. В вашем .htaccess файле:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^user/([^/]+)$ /profile.php?user=$1 [L] 

Затем вы можете проверить что-то подобное в profile.php:

if(isset($_GET['user'])){ 
    if(is_numeric($_GET['user'])){ //Check if the input is all numeric 
     //Grab the username from database 
     //Redirect user to site.com/user/$username 
    } 
} 

Более подробную информацию о is_numeric() функции РНР: http://php.net/manual/en/function.is-numeric.php

Вы можете также проверить если пользовательское имя пользователя является полностью числовым, чтобы избежать постоянного перенаправления пользователя. Если вы убедитесь, что у пользователей нет всех числовых имен пользователей, все будет хорошо.

0

Вы не можете, как .htaccess не может получить доступ слоя хранения, вы должны использовать PHP скрипт, который преобразит ваши ID к username, а затем сделать редирект.

Смежные вопросы