0

我想知道这些天网站如何管理他们的内容和 AJAX 调用。

Facebook 怎么会有这样的 URL:http: //www.facebook.com/zuck

像http://www.facebook.com/zuck/这样在 zuck 的末尾没有 /

这显然非常方便,因为他们实际上不需要创建名为 zuck 的子目录。

我也注意到像http://hypem.com/popular这样的地方也在这样做。对他们来说很方便,因为他们能够不间断地运行他们的媒体播放器,并且他们不需要在 URL 中包含 #。

4

3 回答 3

2

它被称为 nice-url 或 URL-Rewrite。

您可以遍历对index.php的所有请求,然后您可以$_SERVER['REQUEST_URI']在 PHP中处理它。

您需要在站点的根目录下创建一个名为.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>
于 2012-11-15T04:47:18.407 回答
2

这种 URL 主要使用 .htaccess 文件中的 Apache 重定向规则,您会看到类似 domain.com/example 的内容,但在后端它实际上意味着将其重定向到类似

domain.com/subdirectory/maybe-anotherone/example.php

所以他们不希望用户看到他们系统的确切模式。

于 2012-11-15T04:32:15.197 回答
2

这是URL 重写功能。

可能有各种实现,但基本上它是由网络服务器完成的,获取请求路径(例如/zuck/or /popular/songs/whatever),而不是在该路径中查找文件,而是将其解析为参数(可能在 HTTP 堆栈中或以后定义了规则)。

因此http://www.facebook.com/zuck,在服务器内部就相当于http://www.facebook.com/profile.php?id=zuck(或类似的东西)。

于 2012-11-15T04:35:11.410 回答