如何用PHP重写我的个人资料URL



我有问题关于如何重定向我的网站用户配置文件页面显示为mysite/profile.php?uid=1到mysite/username

我的HTACCESS代码

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule profile/(.+) profile.php?uid=$1

我的profile.php代码

<?php
$uid = intval($_GET['uid']);  // Get user ID
$userd=$db->get_row("SELECT * FROM c_users WHERE userid='$uid'");
if(!$userd)
{
print "<title>User Profile :: ".$config->title."</title>";
err_msg("Profile","There is no such user or user has been deleted.");
}
print "<title>Profile of ".$userd->username." - ".$config->title."</title>";
if(isloggedin())
{
$db->update_data("UPDATE c_users SET userwhere='".$user->username." is viewing profile of $userd->username' WHERE userid='$user->userid'");
}
$gro=$db->get_row("SELECT * FROM c_groups WHERE groupid='$user->groupid'");
print "<table width="100%" cellpadding="4" cellspacing="0" border="0"><tr><td class="catSides">";
print "User Profile of ".$userd->username."</td></tr>";
if($userd->avatar)
print "<tr><td class='row1' align='center'><img src="".$config->url."avatar/".$userd->avatar."" width="60" height="60"/></br><img src='/images/icn/".$userd->usericon.".png' alt='' /> <font color="".$group[$userd->groupid]['color']."">$userd->username</font> </td></tr>";
print "<tr><td class='row1'>Username: ".$userd->username."</td></tr>";
print "<tr><td class='row1'>Name: ".$userd->name."</td></tr>";
print "<tr><td class='row1'>Gender: ".$userd->gender."</td></tr>";
$birthday = explode('.',$userd->birthday);
echo '<tr><td class="row1">Birthday: '.$birthday[0].' / '.$birthday[1].' / '.$birthday[2].' ('.(date("Y",date("U")) - $birthday[2]).'t)';
?>
<?php
print "<tr><td class='row1'>Status: ".$group[$userd->groupid]['name']."</td></tr>";
print "<tr><td class='row1'>Rank: ";
if($userd->rank == "0" || $userd->rank == "")
{ print get_rank($userd->posts); }
else
{ print strip_tags($userd->rank); }
print "</td></tr>";
print "<tr><td class='row1'>Posts:  ".$userd->posts." </td></tr>";
print "<tr><td class='row1'>Topics:  ".$userd->threads." </td></tr>";
$fsize=$userd->upkb;
$decpos=strpos($fsize,".");
if($decpos!==false) $fsize=substr($fsize,0,$decpos+3);
$fsize1=$fsize;
print "<tr><td class='row1'>Uploaded: ".$userd->upload." ( ".$fsize." kb )</td></tr>";
$fsize=$userd->downkb;
$decpos=strpos($fsize,".");
if($decpos!==false) $fsize=substr($fsize,0,$decpos+3);
print "<tr><td class='row1'>Downloaded: ".$userd->download." ( ".$fsize." kb )</td></tr>";
if($gro->viewemail == "1")
print "<tr><td class='row1'>E-mail: <script type="text/javascript"> document.write("".$userd->email."");</script></td></tr>";
if($gro->viewip == "1")
print "<tr><td class='row1'>IP: ".$userd->ip."</td></tr>";
if($gro->viewbrowser == "1")
print "<tr><td class='row1'>Browser: ".htmlentities($userd->browser, ENT_QUOTES, 'UTF-8')."</td></tr>";
print "<tr><td class='row1'>Last Login: ".$userd->lastlogin."</td></tr>";
print "<tr><td class='row1'>Total Thanks: ".$userd->thanks."</td></tr>";
print "<tr><td class='row1'>Total Reputes: ".$userd->reputes."</td></tr>";
print "<tr><td class='row1'>Mobile No.: ".$userd->mb."&nbsp;</td></tr>";
print "<tr><td class='row1'>Country: ".$userd->country."</td></tr>";
print "<tr><td class='row1'>Address: ".$userd->location."&nbsp;</td></tr>";
if(isloggedin()){
print "<tr><td class='row1'><a href="pm/index.php?do=new&uid=".$userd->userid."">Send ".$userd->username." A Message</a></td></tr>";
print "<tr><td class='row1'><a href="/show.php?uid=".$userd->userid."">Show threads by ".$userd->username."</a></td></tr>";
}
if($group[$user->groupid]['canban'] == "1")
{
if($userd->banned == 1)
{
print "<tr><td class='row1'><a href="/blockuser.php?do=unban&uid=".$userd->userid."" align="center">UnBan ".$userd->username."</a></td></tr>";
}else{   print "<tr><td class='row1'><a href="/blockuser.php?do=ban&uid=".$userd->userid."">Ban ".$userd->username."</a></td></tr>";   }
}
print "</table>";
include "profile_showtopic.php";
?>

MY用户sql表(_c)

有人能帮我解决这个问题吗?

试试这个:

RewriteEngine on
RewriteCond %{THE_REQUEST} /profile.php?uid=([^s]+) [NC]
RewriteRule ^ %1? [R,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ profile.php?uid=$1 [NC,L]

这将重定向丑陋的url到SEF格式的url:

 /profile.php?uid=foo

 /foo

或重写

 /foo

 /profile.php?uid=foo

最新更新