我试图通过将子域名屏蔽为目录来解决 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>