PHP - 对外部服务器连接的 .htaccess 重写

3
我有多台服务器和一个主服务器来托管我的API。
[服务器1] <---> [API服务器] [服务器2] <---> [API服务器]
我在实际发送curl请求到API服务器时遇到了一些困难,并且不确定是否可以从外部服务器进行。我阅读了一篇文章,介绍了使用重定向的方法,使服务器像内部服务器一样运行(CORS)。
所需的URL是(API文件所在位置):
$this->url = "http://www.example.com/API/RequestsDJ/API/RequestsHandler.php";

然而,我在编写 .htaccess 文件方面遇到了困难,目前我的代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule API/RequestsDJ/(.*)$ API/RequestsDJ/API/RequestsHandler.php [QSA,NC,L]
</IfModule>

这里的想法是将URL转换为:
$this->url = "http://www.example.com/API/RequestsDJ";

通过CORS方法重定向为内部请求,然后在API/RequestsDJ/API/RequestsHandler.php文件中运行函数。(我不确定它是否会携带POST数据,但现在只是用于测试)。有谁能帮帮我吗?提前感谢,我不擅长.htaccess文件(API不支持任何GET请求,因此不需要任何?example=)。
1个回答

1

我认为你需要修改RewriteRule中的正则表达式规则,从这个开始:

RewriteRule API/RequestsDJ/(.*)$ API/RequestsDJ/API/RequestsHandler.php [QSA,NC,L]

将此转换为中文:

 RewriteRule ^API/RequestsDJ/(.*)$ API/RequestsDJ/API/RequestsHandler.php [QSA,NC,L]

您可能也不需要使用QSA标志,因为您使用POST获取所有参数。查询参数不是必需的。

基本上,我正在尝试向另一个域/服务器发送curl请求。然而,安全问题限制了这一点。因此,我遇到了一种CORS方法,其中添加了重定向,使外部请求变为内部请求,从而允许请求继续进行。目前,我不确定它是否会让我获取响应或POST,但暂时,我只需要让请求通过。我现在会尝试这个方法:D 谢谢! - Jaquarh
这实际上获取了POST数据以及响应。完美! - Jaquarh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接