点击用户John Smith的位置 user_id 1它应该转到网址www.example.com/John-Smith而不是profile.php?uid = 1
当您在 user_id 中点击用户John Smith时,它应该转到网址www.example.com/John-Smith-2 profile.php?UID = 2
当您点击 user_id 中的用户Kia Dull时,它应该转到网址www.example.com/Kia-Dull profile.php?UID = 3
Table Users
User_id First_name last_name
1 John Smith
2 John Smith
3 Kia Dull
如何格式化我的.Htaccess文件和php / sql。
点击用户个人资料后,我只需将其引导至此。
<a href="<?php echo $row[first_name] ?>-<?php echo $row[last_name] ?>"
没有做任何事情。
这是我的.htaccess
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ profile.php?uid=$1 [L]
答案 0 :(得分:1)
答案 1 :(得分:1)
我会在数据库中创建另一个名为“slug”的列,并使其成为唯一的字符串。现在,在添加新记录时,我会为此创建一个slug。
我找到了一个函数来创建一个slug作为这个问题的答案:PHP function to make slug (URL string)
在引用问题的答案中提供的slugify函数不会检查数据库中是否已存在该值。如果slug已经存在,你必须自己动手并添加类似“-1”的后缀。
如果您已完成所有这些操作,那么您的数据应与以下内容类似:
Table Users
User_id First_name Last_name Slug
1 John Smith john-smith
2 John Smith john-smith-1
3 Kia Dull kia-dull
接下来的步骤应该很简单。
这是创建链接的选项:
<a href="<?php echo $row['Slug'] ?>"><?php echo $row['First_name'] ?> <?php echo $row['Last_name'] ?></a>
.htaccess文件应该没问题就好了......
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ profile.php?uid=$1 [L]
您只需在 profile.php 文件中查询表格中的值为$ _GET ['uid']。现在我将参数 uid 重命名为 slug ,因为它不再是ID,但是你可以通过查询slug后很容易地得到ID。
此解决方案的好处:
<强>供参考:强>
slug是URL的一部分,它使用人类可读的关键字标识页面。 http://en.wikipedia.org/wiki/Clean_URL#Slug
答案 2 :(得分:0)
你错过了一点代码,确切的代码是这样的......
<a href="<?php echo $row['first_name']."-".$row['last_name']."-".$row['User_id']."profile.php?uid=".$row['User_id']; ?>"><?php echo $row['first_name']."-".$row['last_name']."-".$row['User_id']; ?></a>
此创建您想要的URL,并根据需要在URL中进行更改。
答案 3 :(得分:0)
您必须使用“echo”来显示该链接中的数据
<a href="<?php **echo** $row[first_name] ?>-<?php **echo** $row[last_name] ?>"
答案 4 :(得分:0)
将此用于您的htaccess规则。该规则基本上匹配任何以-
结尾的数字
RewriteEngine on
RewriteBase /
RewriteRule -([\d]+)$ profile.php?uid=$1 [L]
您的链接就是这样的。
<a href="<?=$row['first_name']?>-<?=$row['last_name']?>-<?=$row['user_id']?>">User</a>
答案 5 :(得分:-1)
RewriteEngine on
RewriteBase /
RewriteRule ^([^.*]+)$ profile.php?uid=$1
应该做的伎俩