URL重写查询数据库?

Lia*_*iam 0 php mysql url seo url-rewriting

我试图了解URL重写的工作原理.我有以下链接.

mysite.com/profile.php?id=23
Run Code Online (Sandbox Code Playgroud)

我想用用户的名字和姓氏重写上面的url.

mysite.com/directory/liam-gallagher
Run Code Online (Sandbox Code Playgroud)

从我读过的内容中你可以指定url应该输出的规则,但是如何查询我的表以获取每个用户名?

对不起,如果这很难理解,我自己也很困惑!

Peo*_*eon 6

你是从错误的方向看这个.你不能做那种自动url重写.最好是创建一个遍布url重写:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

并在db中为用户创建一个特定的名称,该名称将用作URL.

+---------+----------+------+-----------+----------------+
| user_id | username | name | surname   | url            |
+---------+----------+------+-----------+----------------+
|      23 | liam     | Liam | Gallagher | liam-gallagher |
+---------+----------+------+-----------+----------------+
Run Code Online (Sandbox Code Playgroud)

现在,当有人访问您时http://mysite.com/directory/liam-gallagher,您可以阅读最后一个条目并找到user_id您的数据库并让您的脚本完成剩下的工作.

另一种方式是佩卡建议的.创建一个url http://mysite.com/directory/23/liam-gallagher并从链接中读取id.但我个人不喜欢那种网址.在我看来,它们只是快速/懒惰的解决方法.