Apache Web服务器的虚拟URLpipe理器

我正在寻找一个工具来pipe理运行在Apache(或IHS – IBM HTTP Server)上的单个域的虚荣url。

我的意思是虚荣url:

  • www.mycompany.com/ProjectA将redirect到servera.mycompany.com/whatever
  • www.mycompany.com/ProjectB将redirect到serverb.mycompany.com/another/directory
  • www.mycompany.com/FallCampaign将redirect到servera.mycompany.com/whatever/offer.html
  • 等等

当前实现的解决scheme包含数千个手动更新的目录,并使用redirect用户的php脚本。 这已经成为维护的噩梦。 使用手动更新的 .htaccess文件将此解决scheme转换为解决scheme不是选项*。

理想情况下,这个工具将:

  • 为apache / IHS Web服务器工作
  • 为用户和pipe理员提供一个Web界面
  • 允许用户创build,删除和更新虚荣url
  • 允许用户指定区分大小写,或不区分大小写的每个虚空url
  • 允许用户将redirect指定为每个虚空url的HTTP 301(永久)或HTTP 302(临时)
  • 允许用户指定每个虚荣URL作为永久(产品)或临时与“取下”date(用于市场营销活动)。
  • 提供一个工作stream程用户提交虚荣URL请求,并为他人批准
  • (作为一种可能的解决scheme)写出一个单一的,pipe理的.htaccess文件,只要该文件在被推送到服务器之前由该工具validation,以便它不会对服务器产生负面影响。
  • (作为一种可能的解决scheme)用redirect/ .htaccess文件写出目录,但也可以pipe理创build,更新和删除这些目录。
  • 可能使用数据库后端或xml后端。
  • 提供一个解决scheme,以我没有想到的方式满足这些标准。
  • (可选)提供非常简单的报告(永久url的数量,临时url的数量,即将到期的临时URLs即将到期等)

*如果在文件中input错误,使用单个手动编辑的.htaccess文件会带来太多的风险,可能影响所有的URL。 位于目录中的多个.htaccess文件与使用phpredirect一样是一个维护噩梦。

我不知道你的书中究竟是什么定义了“维护噩梦”,但是你可以尝试在apache中使用dynamic重写映射:

 RewriteEngine on RewriteMap vanity-map prg:/path/to/vanity.pl RewriteRule ^/(.*)/(.*)$ /${vanity-map:$1}/$2 

vanity.pl可能是一个简单的perl脚本(不要忘记设置$| = 1; ),它会在STDIN上获得请求URL的第一部分(如上所述),并且应该重写它 – 例如通过查询数据库。

现在,这只是离开了前端。 我是一个没有经验的Ruby on Rails程序员(这只是一个空闲时间的活动),但我认为,如果它不需要看起来漂亮,即使我可以编写一个应用程序来validation用户,让他创build一个重写和显示在不到一个星期的时间内,我就认可了一些IT人员/ $ WHATEVER,所以我不认为真正的程序员在几个小时内就会遇到问题。 根据数据库的不同,甚至可能有前端可用,只需要一点点定制就可以完成这项工作(php * admin在我看来)。

通过这种方式,您可以将数据库方法的所有灵活性与所有redirect的中央源配合使用。 只要URL部分的数据库索引适合您的服务器内存,您甚至不必担心性能。

我只见过相反的情况。 例如, webmail.domain.tldredirect到domain.tld/squirrel

我不认为你可以做你通过DNS描述的东西:一旦你通过域名进入path,你已经离开了DNS处理的领域。

你正在描述一个URL缩短器,比如TinyURL。 但是,这将涉及到你已经描述的同样的维护问题。