我是一名PHP程序员(新手)。我非常钦佩Twitter使用这样一个动态网址 - http://twitter.com/username
使用其用户名的方式它是如何设法的?甚至Quora和SO也以类似的方式工作。我知道get方法,然后设计模板并使用会话导入数据。
但是,这个动态网址的工作原理是什么?
答案 0 :(得分:1)
虽然Twitter不是用PHP编写的,但可以实现相同的效果。
使用.htaccess
或httpd.conf
(如果使用Apache),您可以添加规则。
RewriteEngine on
RewriteRule .* index.php/$0 [PT]
然后,您可以通过查看$_SERVER['REQUEST_URI']
来访问该网址,以确定将请求路由到何处。
答案 1 :(得分:1)
除了重写url之外,你需要在你的索引页面内(当没有井号时,这意味着这是一个直接的请求)使用AJAX从浏览器中检索,使用Javascript,后面的URI片段签名,解析它,然后将相关内容推送给访问者。
答案 2 :(得分:0)
这一切都始于.htaccess url重写。
答案 3 :(得分:0)
每当你看到一个带#的网址时! (称为hash-bang)然后通过javascript和ajax生成您正在查看的页面调用服务器以返回所需的所有数据。
在Twitter的情况下,当他们的服务器收到twitter.com/username的网址时,会有一个网址重写脚本,将浏览器重定向到twitter.com/#!/ username,这只是网站的根目录。该页面上的javascript然后获取!#后面的url部分,并编码显示正确的信息。
我还建议阅读http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs关于此方法的来源以及为什么有人认为这实际上不是一个好主意。