[英]htaccess redirect to external website without changing address bar
我有一個超人叫,讓我們說:
cloud.mygizmo.com
但是,當有人導航到該URL時,我希望他們實際轉到:
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
?
你不能 重定向不能那樣工作。
您可以代替代理數據(這樣會降低效率,並增加帶寬成本)。
如果已安裝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
虛擬主機中,您可以說:
ProxyPass / http://11.22.33.44/cloud
然后,任何對cloud.mygizmo.com
請求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]
可能不是理想的解決方案,但您可以構建一個非常龐大的iframe的頁面並將內容加載到iframe中...
編輯:查看藍色主機是否在您的控制面板(也稱為“屏蔽轉發”)中允許托管域。 我想這就是你想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.