我有一个叫做的子菜单,让我们说:
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 :(得分:1)
你做不到。重定向不会那样。
您可以代理数据(这会效率低下并增加带宽成本)。
答案 1 :(得分: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]
您也可以使用ProxyPass
或ProxyPassMatch
来反向代理,但这些只能在vhost / server配置中使用。
在cloud.mygizmo.com
/ www.cloud.mygizmo.com
vhost中,您可以说:
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]
答案 2 :(得分:1)
可能不是理想的解决方案,但是可以构建一个几乎是巨型iframe的页面,并在iframe中加载内容......
编辑:查看蓝色主机是否允许您的控制面板中的停放域名(也称为蒙面转发)。我想这就是你想要的。