阅读 Kevin 在
CSS 文件将包含以下内容…
background:url(../images/topheader.htm) top left no-repeat;
…其中 topheader.htm 只是一个空文件。 在同一个目录中有一个名为 topheader.jpg 的 jpg 文件。 这是怎么工作的? 为什么这样做?
是的,我以前见过。 我不知道它是如何工作的,也不知道为什么要这样做。 我尝试在我的秘密实验室中复制此技术,但无法使其工作。
我以前在 HTML 文件中看到过指向 PHP 文件的图像路径,例如在旧的 随机图像 技术中,代码如下所示
<img src="/path/to/images/rotate.php" />
但对我来说这是有道理的——脚本将返回一个文件路径。 这只是一个空白的 HTML 文件…
这里是否使用了某种服务器端脚本? 其他人以前见过这个吗? 你知道这是怎么回事吗?
看起来像 Apache 重写指令。 空白的 htm 文件只是一个障眼法。
有一些模块/配置可以使 Web 服务器在找不到请求的文件时提供另一个文件。 根据我的观察,服务器将提供与请求文件最接近的文件名的文件。
例如:浏览器请求 file1.htm,但该目录中没有找到该文件。 服务器找到 file1.jpg 并提供该文件。 服务器尝试最小化 404 错误。
我个人不喜欢这样,因为它会加剧代码的混乱,并会导致调试头疼。
我同意 WC 的观点。 使用 mod_rewrite,'/images/topheader.htm' 可以真正地写入任何服务器端脚本。
是的,WC 是对的——有了指向执行此操作的站点的 URL,就能更容易地确定。
这些都是使该配置生效的可行方法,但对于这些示例,除了可能是为了避免图像被热链接之外,没有理由这样做。
上下文是什么?
我同意 Paul 的观点。
我猜想 htm 文件不是空白的,而是可能是某个服务器端脚本。 返回给客户端的是空白文件。
恕我直言,这样使用重写引擎没有道理。 对我来说,唯一有道理的是一个脚本,例如,它检查引用者以避免热链接,或者进行一些其他处理,如果某个条件(不)满足,则返回一个空白文件。
大家给出了很棒的答案,谢谢!
我会问 Kevin 他是否有一个指向相关 URL 的链接。 正如我所说,我知道我以前见过,但我不能脱口而出一个链接。
答案在这里逐渐明朗。 到目前为止,我们已经确定 HTML 很可能不是空白的,而是包含某种脚本,当你在浏览器中链接到它时,该脚本不可见。 该脚本很可能在满足特定条件的情况下返回指向图像的文件路径。
然而,防止热链接这件事对我来说没有意义…… 由于这在 CSS 文件内,引用者如何才能不是同一个站点? 除非 CSS 文件被盗,并试图在其他站点上使用,我猜想是这样的。
我的第一直觉是假设使用了 mod_rewrite 或重定向指令,但如果是这样的话,直接调用该页面仍然会调用该指令吗?
例如
redirect 301 /images/top.html http://images.somedomain.com/top.gif
如果你将浏览器指向 /images/top.html,它仍然应该跳转到 images.somedomain.com/top.gif,对吧? 这就是 HTTP 重定向代码的作用:告诉浏览器转到其他地方。
这很奇怪,不过…… 我想可以进行一些重写,将其提供给另一个文件,并包含有关它是从哪个页面调用的信息…… 但这似乎相当复杂,而且我看不出这样做有什么价值。
所以,是的,不知道是怎么做的,也不知道为什么。
像 rotate.php 这样的脚本不会返回文件路径,它们会返回实际的图像数据流,浏览器会将其视为图像——在服务器端,图像可能是实际文件,也可能是由脚本动态生成的。
一些服务器还被设置为将 html 文件解析为 php 文件(效率不高,但可以做到)。
话虽如此,我还是不知道你这个问题的答案!
我做过这种事情,使用服务器端脚本和 mod_rewrite 或 isapi_rewrite 等重写模块很容易实现——另一种方法是在 IIS 中将 *.* 映射到 asp
你所要做的就是在使用的服务器端脚本语言中查看 http_referer 服务器变量。 然后,你可以根据用户上次的位置确定是发送图像、什么都不发送,还是发送显示“你没有权限查看此文件”的图像。
我在我的网站上运行着一个脚本,它会将引用域与注册的域名列表进行比较,以查看是否有人使用了我不知道的软件。 然后,该脚本会决定是发送显示“未注册”的红色图像,还是发送显示“已注册”的白色图像。
是用于在刷新时旋转图像的脚本的一部分。 整个内容都在这里:http://www.alistapart.com/articles/randomizer/
指向 php 文件的那个可能是使用 php 的 gd 库创建图像的脚本。(用于图像操作和创建的编码库)php 会将文件头设置为图像文件的头,这样 html/浏览器甚至不会意识到它调用的不是图像。