如何使用RewriteRule与bit.ly这样的URL?

时间:2010-11-02 01:22:42

标签: apache

我不知道他们是否真的使用了RewriteRule(Apache mod_rewrite),但是如果我们在bit.ly的URL之后附加一个URL(即:http://bit.ly/http://www.somesite.com/),则会将URL附加为参数(http://bit.ly/?u=http%3A%2F%2Fwww.somesite.com%2F)。

有人知道怎么做,可能还有RewriteRule或其他什么?如果是这样,管理这个的正则表达式是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

我认为他们的重写规则看起来像这样:

 RewriteRule ^(http.*)$ ?u=$1?%{QUERY_STRING} [R]

忍不住弄清楚这个:接受多个协议并避免附加?如果没有查询字符串:

   RewriteCond %{QUERY_STRING} (^$)
   RewriteRule ^((http|ftp).*)$ ?u=$1 [B,R,L]

   RewriteRule ^((http|ftp).*)$ ?u=$1?%{QUERY_STRING} [B,R,L]

答案 1 :(得分:0)

这可能是以下几点:

<IfModule mod_rewrite.c>
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

然后让index.php做一个:

  1. 搜索数据库以查看链接是否正常或已标记(恶意软件,垃圾邮件等)
  2. 在统计数据库中标记访问
  3. 在用户上抛出http 301标头以进行正确的重定向