2012-07-23 109 views
2

我想重定向一個域名:http://www.newdomain.comhttp://sub.maindomain.comhtaccess的重定向域和URL面膜

我已編輯的.htaccess爲:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !sub.maindomain.com$ [NC] 
RewriteRule ^(.*)$ http://sub.maindomain.com/$1 [L,R=301] 

它重定向,但在地址欄中http://sub.maindomain.com可見。幫幫我!如何做掩模,以便http://www.newdomain.com可見。謝謝

而且我還想創建一個子網站http://sub.newdomain.com。如何用.htaccess做到這一點。

+1

「www.newdomain.com」和「sub.maindomain.com」是否由同一主機提供服務? – 2012-07-23 21:50:52

+0

@JonLin不,他們是由不同的主機提供服務。但是,如果它相同或不同,我認爲它並不重要。 – 2012-07-23 21:54:20

+1

如果你有重定向(規則目標中的'R = 301'標誌或有'http://'/'https://'),那麼瀏覽器將始終在地址欄中顯示新的URL。如果他們在2個不同的主機上,那麼你不能在內部重寫,你只能重定向或代理。 – 2012-07-23 21:56:14

回答

3

如果www.newdomain.comsub.maindomain.com是在不同的主機,將同時在瀏覽器的地址欄中的URL說www.newdomain.com爲代表的瀏覽器從sub.maindomain.com內容取送達得到sub.maindomain.com內容的唯一途徑。因爲就瀏覽器而言,它正在查看newdomain上的內容。

您可以通過使用apache或者腳本設置代理來實現。使用apache,您需要訪問您的用於www.newdomain.com域的vhost配置。你可以將它設置,如:

ProxyPassMatch ^(.*)$ http://sub.maindomain.com$1 

看看在mod_proxy docs更多信息的標誌,你可以通過這個指令,來調整超時和重試。

如果你想設置一個php腳本代理,你需要將所有的請求路由到這個php腳本,所以在你的www.newdomain.com文檔根目錄的htaccess文件中,添加(假設這個php腳本被稱爲proxy.php):

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/proxy.php 
RewriteRule ^(.*)$ /proxy.php?url=$1 [L,QSA] 

然後在proxy.php,尋找url查詢字符串,加載該頁面,並輸出到瀏覽器。

儘管如果您只需將兩個域指向同一主機,所有這些都會更容易。

+0

非常感謝這個描述性的答案。 – 2012-07-23 22:30:41

+0

可以描述我如何創建一個子網站http://sub.newdomain.com。它可能與.htaccess。這將是有益的,謝謝。 – 2012-07-24 09:52:24

+2

@Subhransu幾個例子:http://stackoverflow.com/questions/5929129/can-i-dynamically-create-subdomains-php-htaccess-with-godaddy-hosting http://stackoverflow.com/a/874802/851273 http://stackoverflow.com/a/3126695/851273 – 2012-07-24 10:11:46