将url中的目录重命名为会话变量

时间:2014-03-04 17:02:07

标签: php .htaccess url

我目前拥有一个简单用户系统的网站,并且讨厌人们在访问个人资料时看到的丑陋的'profile.php?id = $ id'或'/users/$id/friends.php'URl 。话虽如此,我将如何改变:

“/ users / $ id / friends.php”

将部分替换为相应的用户名,例如:

“/ $ username / friends.php /”

这怎么可能?我可以通过使用preg_replace编辑.htaccess来完成这项工作,还是应该在创建时将目录命名为$ userid?第一次发布抱歉可能出现的错误。

1 个答案:

答案 0 :(得分:0)

你必须在你的php文件中的htaccess文件代码中编写一些路由规则来处理这类事情。 htaccess规则是直截了当的,它们只是采用看起来像/$username/friends.php/的URL并将其批发发送到脚本:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/friends\.php/?$ /user_route.php?username=$1 [L]

路径可以指向您想要的任何脚本,无论您想要什么参数。 /user_route.php?username=$1只是一个示例,"用户名"是示例中的$username传递为。

然后在您的user_route.php脚本中,您需要获取$_GET['username']变量,清理它(如果有破折号或空格或其他内容),请执行数据库查找以查找用户的ID,然后将其传递给配置文件脚本(或您处理好友事务的任何脚本)。

然后,您需要确保所有链接都显示为/$username/friends.php/

相关问题