问题描述
所有帖子都在帖子表中。我在网页上显示每个帖子,这些帖子是由数据库中的随机数标识的(例如:10110501表示帖子编号为1,依此类推。)。现在,当访客单击帖子摘录时,我希望帖子以如下URL显示:www.example.com/posts/10110501,这将显示从数据库到单个帖子页面的帖子编号1。我不希望URL有?符号。我该如何实现?
解决方法
在posts目录下,您可以添加index.php和“ .htaccess”以将任何URL重写为index.php
在成功重写规则后,您所有的帖子请求都将命中该index.php,在该index.php上,您可以使用$ _SERVER ['REQUEST_URI']获取该网址
然后将数组拆分为随机数,然后在数据库中进行搜索。
Sample '.htaccess' with rewrite rule
,您需要使用.htaccess
重新写入规则。
假设您想拥有www.yourdomain.com/profile?id=user-unique-name
为www.yourdomain.com/profile/user-unique-name
然后,在您的.htaccess
文件中,您可以编写以下规则
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^users/(\d+)*$ ./profile.php?id=$1
有关参考,请read here more