2013-09-05 61 views
1

我已经叫subdoman,让我们说:htaccess的重定向到外部网站,而不改变地址栏

cloud.mygizmo.com 

但是,当有人浏览到这个网址我希望他们真正去:

11.22.33.44/cloud 

它位于与mygizmo.com完全不同的主机上,无法移动。

在我.htaccess我有这样的:

RewriteEngine on 
# Use PHP5.4 as default 
AddHandler application/x-httpd-php54 .php 
RewriteCond %{HTTP_HOST} ^cloud\.mygizmo\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.cloud\.mygizmo\.com$ 
RewriteRule ^/?$ "http\:\/\/11\.22\.33\44\/cloud" [L] 

这确实做重定向,但它仍然改变了用户的浏览器的地址栏中。

我该如何做到这一点,如果用户导航到cloud.mygizmo.com他们实际上去11.22.33.44/cloud,但地址栏仍然说cloud.mygizmo.com

+0

我不是DNS家伙,但难道你不能通过添加或修改A记录来完成此操作吗? – timgavin

+0

@Tim:嗯,我不能添加A记录来指向一个文件夹,例如'11.22.33.44/cloud'。但我想我可以将它指向'11.22.33.44',然后在那里添加一个重定向。但是,那么URL不会更改为'11.22.33.44'? –

+0

对不起,不知道。我只是把它扔在那里。我以前看过域名,我不记得他们是否是停放域名,例如,你会去adobbe.com并重定向到adobe.com,但你的地址栏仍然显示adobbe.com。不幸的是我不记得那叫什么了。这只是一个例子,伙计们,我知道Adobe不会这么做 - 不要阻止我:) – timgavin

回答

1

你不能。重定向不起作用。

你可以代理数据,而不是(这将是低效的,并增加你的带宽成本)。

+0

我已经编辑了我的问题,不太具体。我不在乎我是否使用重定向,代理或独角兽。我真的只是在寻找最终结果。 –

1

如果您mod_proxy的安装,你可以使用P标志反向代理代表浏览器:

RewriteEngine on 
# Use PHP5.4 as default 
AddHandler application/x-httpd-php54 .php 
RewriteCond %{HTTP_HOST} ^cloud\.mygizmo\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.cloud\.mygizmo\.com$ 
RewriteRule ^/?$ "http\:\/\/11\.22\.33\44\/cloud" [L,P] 

您也可以使用ProxyPassProxyPassMatch反向代理,但这些只能在虚拟主机的工作/服务器配置。

cloud.mygizmo.com/www.cloud.mygizmo.com的虚拟主机,你可以说:

ProxyPass/http://11.22.33.44/cloud 

再来说cloud.mygizmo.com任何请求被代理到http://11.22.33.44/cloud主机。

请注意,ProxyPass的工作原理与Redirect类似,它将路径节点//cloud链接在一起。所以,如果有人去:

http://cloud.mygizmo.com/foo/bar 

他们会获取反向代理到:

http://11.22.33.44/cloud/foo/bar 

如果这不是你想要的,然后使用ProxyPassMatch

ProxyPassMatch ^/$ http://11.22.33.44/cloud 

另外,如果您希望重写规则的行为方式相同,则需要捕获请求URI并将其通过反向引用传递给目标:

RewriteRule ^/?(.*)$ http://11.22.33.44/cloud/$1 [L,P] 
+0

这听起来很完美。我真的不在乎我是否使用重定向,代理或者洒 - 我真的只是对最终结果感兴趣。当你说“在虚拟主机中,你可以说......”你的意思是在'cloud.mygizmo.com'上的'.htaccess'文件中? –

+0

@JohnDibling by vhost config,我的意思是定义网站“cloud.mygizmo.com”的配置文件,而不是htaccess文件(它不允许使用'ProxyPass'指令)。 –

+0

啊。嗯。我不知道我是否有权访问该文件。这是一个在bluehost托管的网站。 –

1

可能不是理想的解决方案,但你可能建立一个页面,这是一个巨大的iframe和加载内的iframe内容...

编辑:查看蓝色主机是否允许您的控制面板中的停放域名(aka Masked Forward)。我认为这是你想要的。

+0

那是一个很好的实用主意,但我不认为我会这样做。 :) –

+0

把东西扔在墙上...... :) – timgavin

+0

@John Dibling see edit ... – timgavin

相关问题