Apache将目录redirect到子域

我试图通过屏蔽一个子域作为目录来解决IE11和iOS上的一些Cross Origin问题

我想要example.com/cdn/来实际加载cdn.example.com/

我有一些工作

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

但在浏览器中,redirect发生了,它仍然显示http://cdn.example.com而不是将其保留为example.com/cdn/

任何方式来实现这一点!?

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

 ProxyRequests Off ProxyPreserveHost On ProxyPass /cdn http://cdn.example.com ProxyPassReverse /cdn http://cdn.example.com 

这必须放在实际的Apacheconfiguration,它不能在.htaccess文件中工作。

请注意,通过代理这样的请求,您正在渲染CDN的优势无用。 在我的其他答案头解决scheme比这更好。

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

你可以在你的脚本(PHP或者你在服务器上运行的任何东西)上做到这一点,或者你可以使用mod_headers在.htaccess文件中做到这一点 :

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