我正在寻找一个工具来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不是选项*。
理想情况下,这个工具将:
*如果在文件中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。 但是,这将涉及到你已经描述的同样的维护问题。