我想将包含单词api/
的所有请求代理到其他服务器。
在我的.htaccess中我有以下内容:
RewriteEngine On
RewriteRule ^api/(.*)$ http://original.com/$1 [R=301,L]
但是,当我尝试发送一些通常可以在我指向的服务器上运行的请求时,例如:
mypage.com/api/users
说未找到。但是,如果我去:
original.com/api/users
它将返回正确的响应。
我做错了什么?
答案 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:在测试之前清除浏览器的缓存。