我對OHS服務器(apache)要求將域A的所有請求重定向到域B,但頁面只需從域A呈現。下面的配置似乎不起作用。將域名從域A重定向到另一個域名,但域名A上只存在應用程序
RewriteCond %{HTTP_HOST} ^http://portal.mycompany.com$
RewriteRule ^(.*)$ http://newportal.mycompany.com:85/$1 [R=301,L]
我做錯了什麼?
我對OHS服務器(apache)要求將域A的所有請求重定向到域B,但頁面只需從域A呈現。下面的配置似乎不起作用。將域名從域A重定向到另一個域名,但域名A上只存在應用程序
RewriteCond %{HTTP_HOST} ^http://portal.mycompany.com$
RewriteRule ^(.*)$ http://newportal.mycompany.com:85/$1 [R=301,L]
我做錯了什麼?
這樣您的域A被髮送重定向到用戶的瀏覽器,所以頁面將被從域B
提供。如果你必須做出域A提供了從域名B的網頁,但用戶做無需查看域B,您可以從mod_proxy
中檢查Proxy
和/或ProxyPass
規則。
還有一件事,如果你代理域B通域A,您可能需要改寫頁內的鏈接,所以看看ProxyHTMLEnable
和ProxyHTMLURLMap
對於域名重定向你能不能簡單地指向您的新域B到A在域名註冊商中使用CNAME或A記錄?
有幾個問題。您無法執行301重定向,並希望保留在域A上。您可以使用mod_proxy
和P
標誌來實現此功能。此外,http_host
變量僅與主機名相匹配。
您需要確保mod_proxy
已啓用,您可以嘗試此操作。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^portal.mycompany.com$
RewriteRule ^(.*)$ http://newportal.mycompany.com:85/$1 [P]
點(。)是的RewriteCond模式的特定字符,使用反斜槓轉義
試試這個
RewriteEngine on
RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.portal\.mycompany\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/?$ http://newportal.mycompany.com:85/$1 [R=301,QSA,NC,L]
中提供感謝您的回覆。我試了下面,但它仍然沒有奏效。 RewriteRule ^(。*)$ http://newportal.mycompany:85/$ 1 [R = 301,L] – user2961454
@ User2961454您是否添加了RewriteBase /到你的.htaccess? – starkeen
RewriteEngine on RewriteBase/ RewriteCond%{HTTP_HOST}^www \ .portal \ .mycompany \ .com $ [NC] RewriteRule ^(。*)/?$ http://newportal.mycompany.com:85/$1 [R = 301,QSA,NC,L – user2961454
其實,我需要屏蔽portal.mycompany.com與newportal .mycompany.com,因爲有一些網頁需要在域名portal.mycompany.com – user2961454