Apache mod_rewrite链接代理

时间:2014-08-09 21:18:09

标签: apache .htaccess mod-rewrite

我想用apache的mod_rewrite模块创建外部链接的代理。 我希望它将用户从http://stackoverflow.com/go/http://example.com/重定向到http://example.com/,其中http://stackoverflow.com/是我网站的网址。所以我在.htaccess文件中添加了一条规则。

RewriteRule ^/go/http://(.+) http://$1 [R=302,L]

但它根本不起作用。如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我不确定Apache或浏览器是否会将//缩减为/,但由于它不会更改目录,因此其中一个目录会将此减少为我的设置中的单个斜杠。这就是为什么第二个斜杠在下面的规则中有?的原因:

RewriteRule ^go/http://?(.*)$ http://$1 [R,L]

这会将用户重定向到该域。

答案 1 :(得分:0)

这会将所有网址(没有开头的http://)重写为新的完整网址。如果您还要使用https链接,则需要类似第二条规则的内容。

RewriteRule ^go/(.*) http://$1 [R=302,L,QSA,NE]
RewriteRule ^gos/(.*) https://$1 [R=302,L,QSA,NE]

如果您需要包含参数

,我还添加了QSA