如何使用PHP自定义我的网站帖子URL

问题描述

所有帖子都在帖子表中。我在网页上显示每个帖子,这些帖子是由数据库中的随机数标识的(例如: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-namewww.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