簡體   English   中英

htaccess重定向到外部網站,無需更改地址欄

[英]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]

您也可以使用ProxyPassProxyPassMatch反向代理,但這些代理僅在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM