使用 mod_rewrite (或类似)内部重定向到另一个虚拟主机
我正在尝试将 site.com/api 内部重定向到 api.site.com。 Site.com 的 .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^api/(.*)$ http://api.site.com/$1 [P,QSA,L]
</IfModule>
我安装了 mod_proxy 和 mod_rewrite。我做错了什么?这可能吗?
编辑:site.com 和 api.site.com 位于同一服务器。我希望尽可能有效地进行重定向。如果有一种方法可以将特定路径中的请求直接传递到文件,即通过 mod_rewrite /srv/www/api.site.com/index.php,那也同样好。
这样做的目的是拥有两个独立的实体,但规避 javascript 的跨域策略。聘请代表不是一种选择,我希望进行直接沟通。 JSONP 不是一个选项。
I'm trying to get site.com/api to internally redirect to api.site.com. Site.com's .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^api/(.*)$ http://api.site.com/$1 [P,QSA,L]
</IfModule>
I have mod_proxy and mod_rewrite installed. What am I doing wrong? Is this even possible?
EDIT: site.com and api.site.com are on the same server. I wish to do the redirect as efficiently as possible. If there's a way to pass a request in a certain path directly to a file, ie /srv/www/api.site.com/index.php via mod_rewrite, that would be just as good.
The point of this is to have two separate entities but circumvent javascript's cross-domain policy. Having a delegate is not an option, I want there to be direct communication. JSONP is not an option.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过 url 重写解决了这个问题。
/library/api.php 直接包含 /srv/www/api.site.com/index.php 中的索引脚本。它必须重写 $_SERVER 中的一些参数,但由于 api.site.com 的 index.php 是单例,这超出了我的目的。
Figured this out via a url rewrite.
/library/api.php includes the index script in /srv/www/api.site.com/index.php directly. It has to rewrite some of the parameters in $_SERVER, but since the api.site.com's index.php is a singleton, this more than serves my purposes.