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