【发布时间】:2012-02-24 18:33:58
【问题描述】:
我在一个服务器上有一堆子域:
- a.example.com
- b.example.com
- news.example.com
它们都在同一个 Apache 虚拟主机中。
我需要使用 a 和 b 子域内的新闻子域提供的提要。提要通常如下所示:
- news.example.com/news/a
- news.example.com/news/b
在 a 和 b 子域上,我使用 jquery's ajax function 从新闻源加载数据,并将其呈现在 a 和 b 上。由于same-origin policy,这最初不起作用。
我可以通过将 Access-Control-Allow-Origin "*" 添加到我的 Apache 配置文件来覆盖它。
... 但这仅适用于 Firefox、Chrome 和 Safari。 Internet Explorer 似乎忽略了该指令。
因此,我需要创建一个代理。
我需要的是我所有子域中的一个新目录(例如 /proxy),Apache 检测到该目录并重定向到 news.example.com,无论子域是什么。所以:
- a.example.com/proxy/news/a -> 返回 news.example.com/news/a 的内容
- b.example.com/proxy/news/b -> 返回 news.example.com/news/b 的内容
我可以直接在 Apache + 子模块中执行此操作(例如 mod_rewrite),还是需要使用 PHP 之类的脚本语言来执行此操作?
【问题讨论】:
-
请参阅caniuse 获取有关使 CORS 在 IE8+ 中工作的文档的一些链接
-
感谢您真正了解 example.com
标签: php apache mod-rewrite cross-domain xss