apache 构建网站
很久以前,人们开始在Twitter上共享链接。 140个字符的限制意味着URL可能占用了大部分(或全部)推文,因此人们转向了URL缩短器。 最终,Twitter添加了一个内置的URL缩短器( t.co )。
字符数现在不那么重要,但是还有其他缩短链接的原因。 首先,缩短服务可以提供分析功能-您可以看到共享链接的受欢迎程度。 它还简化了易于记忆的URL。 例如,与https://www.in.gov/ai/appfiles/dhs-countyMap/dhsCountyMap.html相比, bit.ly/INtravel更容易记住。 如果您想预共享链接但尚不知道最终目的地,URL缩短器可以派上用场。
像任何技术一样,URL缩短器也不是一帆风顺的。 通过掩盖最终目的地,缩短的链接可用于将人们引向恶意或令人反感的内容。 但是,如果您仔细浏览,URL缩短器将是一个有用的工具。
我们之前在此站点上介绍了起酥油 ,但也许您想运行由文本文件支持的简单操作。 在本文中,我们将展示如何使用Apache HTTP服务器的mod_rewrite功能来设置您自己的URL缩短器。 如果您不熟悉Apache HTTP服务器,请查看David Both的有关安装和配置它的文章。
创建一个虚拟主机
funnelfiasco.com ,所以我买了funnelfias.co用作我的URL缩短器(好吧,它虽然不算短,但可以满足我的要求)。 如果您不希望将简化程序作为单独的域运行,请跳至下一部分。第一步是设置将用于URL缩短程序的VirtualHost。 有关VirtualHosts的更多信息,请参见David Both的文章 。 此设置仅需几行基本操作:
<
VirtualHost *:
80 >
ServerName funnelfias.co
</
VirtualHost >
创建重写
该服务使用HTTPD的重写引擎来重写URL。 如果您在上面的部分中创建了VirtualHost,则以下配置将进入您的VirtualHost部分。 否则,它将进入服务器的VirtualHost或主HTTPD配置中。
RewriteEngine
on
RewriteMap shortlinks txt:/data/web/shortlink/links.txt
RewriteRule ^/(.+)$ ${shortlinks:$1} [R=temp,L]
第一行仅启用重写引擎。 第二行建立了文本文件中短链接的映射。 上面的路径仅是示例; 您将需要在系统上使用有效路径(请确保运行HTTPD的用户帐户可以读取该路径)。 最后一行重写URL。 在此示例中,它将获取所有字符并在重写映射中查找它们。 您可能想让重写使用开头的特定字符串。 例如,如果您希望所有缩短的链接都采用“ slX”的形式(其中X是数字),则可以将上面的(.+)替换为(sl\d+) 。
我在这里使用了临时(HTTP 302)重定向。 这使我以后可以更新目标URL。 如果希望短链接始终指向同一目标,则可以使用永久(HTTP 301)重定向。 用permanent替换第三行的temp 。
建立地图
编辑在配置的RewriteMap行上指定的文件。 格式是用空格分隔的键值存储。 在每一行上放置一个链接:
osdc https://opensource.com/users/bcotton
twitter https://twitter.com/funnelfiasco
swody1 https://www.spc.noaa.gov/products/outlook/day1otlk.html
重新启动HTTPD
最后一步是重新启动HTTPD进程。 这是通过systemctl restart httpd或类似命令完成的(命令和守护程序名称可能因发行版本而有所不同)。 您的链接缩短器现已启动并正在运行。 准备编辑地图时,无需重新启动Web服务器。 您所要做的就是保存文件,Web服务器将获取差异。
未来的工作
本示例为您提供了一个基本的URL缩短器。 如果您要开发自己的管理界面作为学习项目,那么它可以作为一个很好的起点。 或者,您也可以使用它来共享指向难忘URL的难忘链接。
翻译自: https://opensource.com/article/18/7/apache-url-shortener
apache 构建网站
本文介绍如何使用Apache HTTP服务器的mod_rewrite功能设置自定义URL缩短器,包括创建虚拟主机、配置重写规则及编辑映射文件的过程。
438

被折叠的 条评论
为什么被折叠?



