我在 SF 上的第一个问题,所以如果我写了这篇文章,请原谅我。:)
无论如何,我在我的一台机器上使用 mod_rewrite 使用一个简单的规则重定向到另一台机器上的 web 应用程序。我还在两台机器上设置标题“Access-Control-Allow-Origin”。问题是,当我遇到重写规则时,我丢失了“Access-Control-Allow-Origin”标头设置。
这是第一台机器的 Apache 配置示例:
NameVirtualHost 10.0.0.2:80
<VirtualHost 10.0.0.2:80>
DocumentRoot /var/www/host.example.com
ServerName host.example.com
JkMount /webapp/* jkworker
Header set Access-Control-Allow-Origin "*"
RewriteEngine on
RewriteRule ^/otherhost http://otherhost.example.com/webapp [R,L]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这是第二个 Apache 配置的示例:
NameVirtualHost 10.0.1.2:80
<VirtualHost 10.0.1.2:80>
DocumentRoot /var/www/otherhost.example.com
ServerName otherhost.example.com
JkMount /webapp/* jkworker
Header set Access-Control-Allow-Origin "*"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我点击时,host.example.com我们看到标题已设置:
$ curl -i http://host.example.com/
HTTP/1.1 302 Moved Temporarily
Server: Apache/2.2.11 (FreeBSD) mod_ssl/2.2.11 OpenSSL/0.9.7e-p1 DAV/2 mod_jk/1.2.26
Content-Length: 0
Access-Control-Allow-Origin: *
Content-Type: text/html;charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)
当我点击时,otherhost.example.com我们看到它也在设置标题:
$ …Run Code Online (Sandbox Code Playgroud)