2015-11-11 49 views
0

我想使用.htaccess将链接到配置文件页面的URL从ID号转换为名称。例如,在Facebook上,如果你要去:使用.htaccess将用户标识转换为用户名?

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

它会带你到马克扎克伯格的个人资料页面。不过,你也可以简单地去:

https://facebook.com/zuck 

...这是更加用户友好,更容易记住。我如何使用htaccess将一个id号码转换成一个用户名?我是否需要将它发送到php脚本来处理并发回名称?

回答

4

您不能专门用.htaccess,因为您需要从数据库中获取该ID的用户名,但是您可以使用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 
    } 
} 

对PHP的is_numeric()功能更多信息: http://php.net/manual/en/function.is-numeric.php

你可能还需要检查如果用户的用户名是完全数字的,以避免不断重定向用户。如果你确定用户没有所有的数字用户名,你会没事的。

0

你不能,作为.htaccess无法访问存储层,你必须使用一个PHP脚本,将您IDusername,然后做重定向。

相关问题