Apache 将目录重定向到子域

Apache 将目录重定向到子域

我试图通过将子域名屏蔽为目录来解决 IE11 和 iOS 上的一些跨域问题

IE

我想example.com/cdn/真正加载cdn.example.com/

我已经学会了

RedirectMatch 301 ^/cdn/(.*)$ http://cdn.example.com/$1

但在浏览器中,重定向会发生,并且仍然显示,http://cdn.example.com而不是保留为example.com/cdn/

有什么办法可以实现这个吗!?

答案1

您可以使用mod_proxy将目录的请求代理到实际的域:

ProxyRequests         Off
ProxyPreserveHost     On

ProxyPass             /cdn           http://cdn.example.com
ProxyPassReverse      /cdn           http://cdn.example.com

这必须放入实际的 apache 配置中,它在 .htaccess 文件中不起作用。

请注意,通过像这样代理请求,您可以利用内容分发网络 (CDN)没用。我的其他答案比这个更好。

答案2

您可以将Access-Control-Allow-Origin标题添加到服务器提供的响应中。

您可以在脚本(PHP 或服务器上运行的任何脚本)中执行此操作,也可以在 .htaccess 文件中使用以下命令执行此操作mod_headers

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "http://cdn.example.com"
</IfModule>

相关内容