RewriteRule不适用于代理

时间:2016-09-28 13:16:07

标签: .htaccess mod-rewrite

我想将包含单词api/的所有请求代理到其他服务器。 在我的.htaccess中我有以下内容:

RewriteEngine On
RewriteRule ^api/(.*)$ http://original.com/$1 [R=301,L]

但是,当我尝试发送一些通常可以在我指向的服务器上运行的请求时,例如:

mypage.com/api/users 

说未找到。但是,如果我去:

original.com/api/users

它将返回正确的响应。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

你有这个指令:

RewriteRule ^api/(.*)$ http://original.com/$1 [R=301,L]

告诉Apache使用外部重定向(api/标头)将所有以http://original.com/开头的请求重定向到Location,其HTTP响应代码为301(永久重定向 - 缓存通过浏览器)。

该行中没有提及代理(P标志)。您需要的是:

RewriteRule ^api/(.*)$ http://original.com/api/$1  [L,P]

P.S:在测试之前清除浏览器的缓存。

相关问题