vit*_*tto 3 php mysql url url-rewriting url-style
我正在努力理解我应该如何使用字符URLs,这是因为我正在构建一个用户可以存储内容的网站,并通过在其中搜索其名称来转到内容页面URL.
所以,像Wikipedia或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 ø被粘贴为%C3%B8
当然对于这样的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
Run Code Online (Sandbox Code Playgroud)
我能够mod_rewrite写一个地址,就像http://mysite.com/user/bob从中获取username鲍勃table_users但是怎么样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"];
?>
Run Code Online (Sandbox Code Playgroud)
这是有效的,但它仅限于[a-zA-Z0-9 _ + - ],如何在不损失太多安全性的情况下更好地兼容所有其他字符?
有人知道一些避免麻烦的方法吗?
尝试urlencode和urldecode
编辑:
这是Visualy url编码和解码的描述
http://blog.neraliu.com/wp-content/uploads/2009/10/url-encoding.png
| 归档时间: |
|
| 查看次数: |
200 次 |
| 最近记录: |