有时候可以适当指点
妈妈总是说:“指指点点是不好的。” 但我会争辩说,妈妈并没有手动输入又长又麻烦的 URL。我们都熟悉像 TinyURL 这样的服务,但因为我们是 Linux 用户,我们倾向于自己做这些事情。就像 Linux 中的几乎所有事情一样,条条大路通罗马,在本文中,我将探讨一些方法。(注意,我真的应该谷歌一下“剥猫皮”,因为现在我读到它,这是一个相当病态的习语!)
预备知识URL 缩短解决方案的第一步是域名。如果您想创建简短、易记的 URL,那么拥有一个简短、易记的域名会有所帮助。如果您使用 www.heycheckouthisreallycoolsiteifound.com 来缩短一个只有它一半大小的链接,那就节省不了多少时间。因此,简短、易记的域名是理想的。这也是等式中最难的部分。像 http://domai.nr 这样的网站可以提供帮助,但想出一个简短的域名是相当具有挑战性的。而想到一个令人难忘的?更是如此。在尴尬地搜索了很长时间后,我能想到的最好的域名是“snar.co”。它并不完美,但它让我发笑,而且很短。
谜题的另一部分是 Web 服务器。我在这里谈到的解决方案对服务器的要求各不相同,但大多数解决方案只需要托管的 Web 服务器,不需要花哨的东西。拥有 .htaccess 修改权限会很有帮助,但如果您没有对您的网站进行此类控制的权限,也不用担心。
iframe—也许您根本不应该重定向它们现在不是很流行了,但在 GeoCities 是大多数人使用的 Web 托管平台的时候,有几种“域名隐藏”服务可用。这基本上是通过将长而难看的 URL 加载到一个不可见的框架中来隐藏它。我在这里做了演示:http://snar.co/notgoogle,您可以看到几个明显的缺陷
-
页面标题是静态的,并且在跟踪链接时永远不会更改。
-
地址栏中的 URL 也永远不会更改,这使得复制网站的 URL 等操作变得不可能。
-
前进和后退有时会按预期工作,有时则不会。
如果这些限制不会困扰您,那么 iframe 可能是您所需要的全部,但这充其量只是一种笨拙的方法。但是,创建这样的页面很简单,因此如果您想尝试一下,上面的示例使用了以下代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<h3>This Is Not Google. Or is it?</h3>
</head>
<body>
<iframe src="http://www.bing.com" width="100%" height="100%" >
</iframe>
</body>
</html>
PHP、JavaScript 和 .htaccess 选项
虽然它可能不是最优雅的解决方案,但当然可以使用自定义 .htaccess 条目来提供重定向。像这样的条目
Redirect /togoogle http://www.google.com
将发送任何请求您网站上的 /shortcode URL 的人重定向到另一个网站。我已经在我自己的网站上付诸实践,所以 http://snar.co/togoogle 应该将您重定向到 Google。老实说,这可能就是您永远需要的全部。如果您有权力和能力使用和修改服务器上的 .htaccess 文件,那么这些小的单行条目既快速又简陋,但它们效果很好。
如果您没有编辑或利用 .htaccess 文件的能力,则可以使用 PHP 或 JavaScript 获得类似的功能。在我的服务器上,我创建了两个文件夹。一个名为 javascriptgoogle,另一个名为 phpgoogle。在 javascriptgoogle 文件夹中,我创建了一个名为 index.html 的文件,其中包含以下代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="javascript">
window.location="http://www.google.com";
</script>
</head>
</html>
访问 http://snar.co/javascriptgoogle 将向您展示该单个 JavaScript 命令的结果。有时 JavaScript 并不理想,尤其因为它经常因恶意代码而受到指责,而且许多人会在浏览器中关闭 JavaScript。在这种情况下,PHP 可能是更好的解决方案。在 phpgoogle 文件夹中,我创建了一个名为 index.php 的文件,其中包含以下代码
<?php
header("Location: http://www.google.com/");
?>
如果您访问 http://snar.co/phpgoogle,您将看到此 PHP 代码的结果,即您被重定向到 Google 的网站。如果您热衷于为您的短 URL 解决方案手动输入重定向,那么您使用哪种方法都无关紧要。尽管出于兼容性目的,.htaccess 或 PHP 方法可能是最佳选择,因为工作是在服务器端完成的,而不是由用户的浏览器完成的。
使用 YOURLS 变得更高级现在我已经了解了 URL 重定向的极客内幕,现在似乎是介绍 YOURLS (http://yourls.org) 的最佳时机,这是一个很棒的开源程序,可以克隆 tinyurl.com、is.gd、bit.ly 等网站的功能。我没有在文章开头提到 YOURLS,因为这是一个学习专栏,我真的希望每个人都了解如何在没有像 YOURLS 这样的花哨拐杖的情况下进行重定向。话虽如此,它真是一个很棒的工具!
YOURLS 可以做一些上面的脚本和方法无法做到的事情。它的一些更强大的功能包括
-
公共或私有模式。
-
自动生成或自定义选择的 URL 关键字(短代码)。
-
统计信息,包括点击次数、引荐来源、地理位置等等。
-
插件架构。
-
完整的 AJAX 界面。
-
开发人员可访问的 API。
它也很容易安装。使用 phpmyadmin(或者如果您足够 Geek,则使用命令行)创建一个数据库,解压缩 YOURLS 存档,编辑 config.php 文件,然后输入您的数据库服务器信息。然后访问 http://yourservername.com/admin/ 并登录!图 1 显示了我的 http://snar.co 的管理页面,它给出了示例链接列表。

图 1. 该界面使添加、修改或删除变得简单。(但是,它在 Chrome 中不能正常工作;Firefox 似乎可以正常工作。)
虽然管理界面是添加和编辑条目的简单方法,但 YOURLS 最酷的功能之一是书签小程序功能。在管理屏幕的“工具”部分中,您会看到一个类似于图 2 的部分,其中有几个不同的书签小程序可供选择。它们的功能略有不同,但它们都非常容易理解。我建议将它们都拖到浏览器的书签栏中,这样您就可以看到您更喜欢哪种方法。从那时起,只需在特定页面上单击书签小程序,即可使用 YOURLS 缩短链接,并为您提供可以与世界分享的自定义 URL。图 3 显示了书签小程序在运行。

图 2. 书签小程序使使用 YOURLS 变得轻而易举。

图 3. 弹出窗口允许自定义 URL 创建。
统计信息非常棒一旦您设置了 YOURLS,并且您已经缩短了您可以想象到的所有 URL,那么下一个值得关注的酷炫功能是统计信息。与 bit.ly 非常相似,使用 YOURLS,您可以通过在短 URL 的末尾添加 + 来打开特定链接的统计信息页面。因此,对于图 4,我只需访问 http://snar.co/map+,登录后,我就可以查看我收到的所有光荣的点击次数。如果您想了解您共享的特定 URL 的受欢迎程度,这些信息非常有用。如上所述,YOURLS 生成的统计信息非常广泛。

图 4. 虽然我的统计信息在这里并不令人印象深刻,但实际功能非常棒。
后续步骤?YOURLS 为创建短链接提供了一个出色的界面。它还提供了一个简单的书签小程序功能,用于随时随地创建短链接。但是,由于其 API,YOURLS 最酷的部分是可以将其集成到其他程序中。例如,WordPress 有一个出色的插件 (http://wordpress.org/extend/plugins/yourls-link-creator),它集成了 WordPress。WordPress 将使用您的自定义 YOURLS 安装和您的自定义短域名,而不是使用第三方 URL 缩短器!
当谈到 URL 缩短,甚至只是简单的重定向时,有很多方法可以完成这项任务。还有数十种免费的重定向服务可用,其中许多服务提供与 YOURLS 类似的功能。但是,当谈到控制您的数据时,很难找到比您自己托管的解决方案更好的方案——如果您能想出一个像样的域名,那就是最好的。可悲的是,这通常是最困难的部分!