我想知道这些天网站如何管理他们的内容和AJAX电话。
Facebook如何能够拥有以下网址: http://www.facebook.com/zuck
没有/在zuck结束时喜欢 http://www.facebook.com/zuck/
这显然非常方便,因为他们实际上并不需要创建一个名为zuck的子目录。
我也注意到像http://hypem.com/popular这样的地方也在这样做。方便他们,因为他们能够不间断地运行他们的媒体播放器,他们不需要在他们的URL中有#。
答案 0 :(得分:2)
这种URL主要使用.htaccess文件中的Apache重定向规则,你会看到像domain.com/example这样的内容,但在后端它真的意味着将其重定向到类似
的内容domain.com/subdirectory/maybe-anotherone/example.php
所以他们不希望用户看到他们系统的确切模式。
答案 1 :(得分:2)
这是URL rewrite功能。
可能有各种实现,但基本上它是由Web服务器采用请求路径(例如/zuck/
或/popular/songs/whatever
)完成的,而不是在该路径中查找文件将其解析为参数(可能存在HTTP堆栈或稍后定义的规则。
因此服务器内的http://www.facebook.com/zuck
变为等同于http://www.facebook.com/profile.php?id=zuck
(或类似的东西)。
答案 2 :(得分:2)
它被称为nice-url或URL-Rewrite。
您可以遍历对 index.php 的所有请求,您可以在PHP中通过$_SERVER['REQUEST_URI']
处理它。
您需要在站点的根目录中创建名为 .htaccess 的文件。这是我正在使用的代码,它将图像,图标和其他一些资源保留在范围之外:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/phpmyadmin/
RewriteRule !\.(ico|gif|jp?g|png|pdf|doc?|xls?|ppt?)$ index.php [L]
</IfModule>