我试图了解 URL 重写的工作原理。我有以下链接。
mysite.com/profile.php?id=23
我想用用户的名字和姓氏重写上面的网址。
mysite.com/directory/liam-gallagher
然而,根据我读到的内容,您指定了 url 应输出的规则,但如何查询我的表以获取每个用户名?
抱歉,如果这很难理解,我自己也很困惑!
你从错误的方向看待这个问题。你不能进行那种自动 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>
并在数据库中为用户创建一个将用作 url 的特定名称。
+---------+----------+------+-----------+----------------+
| user_id | username | name | surname | url |
+---------+----------+------+-----------+----------------+
| 23 | liam | Liam | Gallagher | liam-gallagher |
+---------+----------+------+-----------+----------------+
现在,当有人访问您的http://mysite.com/directory/liam-gallagher
,您可以阅读最后一个条目并找到user_id
在您的数据库中并让您的脚本完成其余的工作。
另一种方式是Pekka https://stackoverflow.com/users/187606/pekka建议。创建一个像这样的网址http://mysite.com/directory/23/liam-gallagher
并从链接中读取 id。但我个人不喜欢这种网址。在我看来,它们只是快速/惰性的解决方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)