加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何使用Last.FM或Wikipedia等社区URL样式?

发布时间:2020-12-13 21:36:04 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试理解如何处理URL中的字符,这是因为我正在构建一个用户可以存储内容的站点,并通过在URL中挖掘它的名称来转到内容页面. 所以,像维基百科或Last.FM网站. 我在网站上看到,用户可以写一些类似于http://it.wikipedia.org/wiki/Trentem?ller的东西,并且艺
我正在尝试理解如何处理URL中的字符,这是因为我正在构建一个用户可以存储内容的站点,并通过在URL中挖掘它的名称来转到内容页面.

所以,像维基百科或Last.FM网站.

我在网站上看到,用户可以写一些类似于http://it.wikipedia.org/wiki/Trentem?ller的东西,并且艺术家的页面可以到达.

加载页面后,如果我复制URL,我看到写为:http://it.wikipedia.org/wiki/Trentem?ller但如果我将其粘贴到文本编辑器中,它将被粘贴为
http://it.wikipedia.org/wiki/Trentem%C3%B8ller

所以char?被粘贴为?

当然对于这样的URL(艺术家Takeshi Kobayashi的页面)也一样

http://www.last.fm/music/小林武史
http://www.last.fm/music/%E5%B0%8F%E6%9E%97%E6%AD%A6%E5%8F%B2

如果我在第一个或第二个数字,数字页面在任何情况下工作,为什么?

我想我应该对.htacces和mod_rewrite做一些事情,但我不确定,特殊字符会自动转换为url特殊字符吗?

然后,我该如何让PHP使用内容名称进行正确的查询?

如果我有一张桌子

table_users
- username
- age
- height
- weight
- sex
- email
- country

我能用mod_rewrite写一个像http://mysite.com/user/bob这样的地址来从table_users获取用户名bob但是http://mysite.com/user/小林武史怎么样?

在这里,我展示了一个我想做的简单例子:

#.htaccess
RewriteEngine On
RewriteRule ^(user/)([a-zA-Z0-9_+-]+)([/]?)$user.php?username=$2

<?php
// this is the page user.php
// this is the way I use to get the url value
print $_REQUEST["username"];
?>

这是有效的,但它仅限于[a-zA-Z0-9_ – ],如何在不损失太多安全性的情况下更好地兼容所有其他字符?

有人知道一些避免麻烦的方法吗?

解决方法

大多数浏览器urlencode()小林武史到小林武史.

在您的.htaccess mod_rewrite规则中,您是否考虑使用以下内容:

RewriteEngine On
RewriteRule ^(user/)(.+?)[/]?$user.php?username=$2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读