.htaccess重写到不同的域

时间:2017-07-10 02:39:42

标签: apache .htaccess mod-rewrite

我知道这很简单,我已经看到它回答了其他几个地方,所有这些似乎都表明我所尝试的是正确的。

我想将/api/foo/bar代理到https://www.example.com/foo/bar。 我没有匹配的规则是:

RewriteEngine On
RewriteRule "/api/(.*)$" "https://www.example.com/$1" [P]

注意:我只能访问.htaccess,因此我无法使用ProxyPassProxyPassReverse

1 个答案:

答案 0 :(得分:1)

你尝试过这样的吗?编辑 .htaccess 文件并使用以下代码:

RewriteEngine On RewriteBase /

RewriteRule ^ api / foo / bar $ https://www.newdomain.com/ $ 1 [L,R = 301]

<强>更新

根据apache文档,您无法在 .htaccess 中使用ProxyPass指令,因此必须在apache中的虚拟主机中进行配置。

但是,您可以使用 ProxyPassReverse 在内部重写导致重定向的代理请求的位置字段。你只需要使用 mod_rewrite 的P标志来代理 ProxyPass

因此,请尝试在 .htaccess 文件中添加以下代码:

a := 1
f := func() int { a++; return a }
x := []int{a, f()}
// x may be [1, 2] or [2, 2]: evaluation order between a and f() is not specified

检查一下是否效果更好!