apache 构建网站_如何使用Apache构建URL缩短器

本文介绍如何使用Apache HTTP服务器的mod_rewrite功能设置自定义URL缩短器,包括创建虚拟主机、配置重写规则及编辑映射文件的过程。

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 构建网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值