php – 如何使用Last.FM或Wikipedia等社区URL样式?
我正在尝试理解如何处理URL中的字符,这是因为我正在构建一个用户可以存储内容的站点,并通过在URL中挖掘它的名称来转到内容页面.
所以,像维基百科或Last.FM网站. 我在网站上看到,用户可以写一些类似于http://it.wikipedia.org/wiki/Trentem?ller的东西,并且艺术家的页面可以到达. 加载页面后,如果我复制URL,我看到写为:http://it.wikipedia.org/wiki/Trentem?ller但如果我将其粘贴到文本编辑器中,它将被粘贴为 所以char?被粘贴为? 当然对于这样的URL(艺术家Takeshi Kobayashi的页面)也一样 http://www.last.fm/music/小林武史 如果我在第一个或第二个数字,数字页面在任何情况下工作,为什么? 我想我应该对.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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |