2013-05-29 54 views
0

這使我瘋狂...... 我在我的服務器上有blah1.com和blah2.com。蒙面子文件夾重定向

我需要做一個從blah1.com/BLAHFOLDER/file.php到blah2.com/BLAHFOLDER/file.php的掩碼重定向,以便該URL不顯示blah2.com。

但是,我不想重定向blah1.com/home.php ...我只想重定向包含BLAHFOLDER的URL。

BLAHFOLDER中有許多文件需要重定向。

到目前爲止,我已經得到的最接近的答案是這些: htaccess redirection.htaccess redirection to subfolder (masked)

但我只是無法得到它與我的設置工作。

任何幫助將不勝感激..

+0

「* ...這樣的URL不顯示blah2.com *」。無法在地址欄中顯示「blah1.com」,因爲它是外部重定向。也許使用反向代理,但必須啓用mod_proxy。 –

回答

2

我假設你在同一臺服務器上的兩臺不同主機上有兩個域。如果你在同一個主機上有兩個域,@AbsoluteƵERØ的答案應該可以工作!

試着把這在「blah1.com」主機的.htaccess:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/FOLDER/ 
RewriteRule ^(.*)$ http://blah2.com/$1 [R,L] 

這會將所有文件重定向像blah1.com/FOLDER/file.php到blah2.com/FOLDER/ file.php等。其他不在FOLDER中的東西不會被重定向。

如果您需要,URL「blah1.com」始終停留在地址欄中,並且在重定向時不與blah2.com交換,請在您的服務器上啓用mod_proxy(http://httpd.apache.org/docs/2.2/mod/mod_proxy.html),並將「L」標誌與「P」標誌,所以你在blah1.com上的.htaccess看起來像這樣:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/FOLDER/ 
RewriteRule ^(.*)$ http://blah2.com/$1 [R,P] 
+0

好吧,它完美的工作,蒙面和所有... 哈哈,現在我有一個新問題:blah1.com不是SSL,blah2.com是ssl,並在blah2的.htaccess文件中,我有 'RewriteCond%{HTTPS} !'' 'RewriteRule(。*)https://blah2.com% {REQUEST_URI}' 它弄亂了一切...任何想法如何解決這個問題?當我從blah2 htacces中刪除這些行時,它完美無缺。 SSL從blah1.com並不重要。 –

0

你必須檢查它是否在正確的域或不:

RewriteCond %{HTTP_HOST} ^blah1\.com 
RewriteRule ^(BLAHFOLDER/file\.php) http://blah2.com/$1 [R=301,L] 

如果您使用的是同一臺物理主機上的兩個獨立的虛擬主機,那麼你可以放棄第一條線,並使其成爲blah1.com的一條規則。

RewriteRule ^(BLAHFOLDER/file\.php) http://blah2.com/$1 [R=301,L] 
+0

但是,這隻會工作,如果兩個域都綁定到同一主機,或?從OP寫道,我明白事實並非如此。 – meberhard

+0

@M -Z它仍然可以工作,無論如何,唯一的問題是如果它們不在同一個主機上,並且它們運行這個文件,那麼RewriteCond就是多餘的,因爲這個域會匹配。 我把「在我的服務器上」表示他們可能運行了幾個虛擬主機或別名,但無論它們是否可能在兩者中都顯示相同的代碼。由於他們沒有將邏輯寫入應用程序,這是我可以提供的最安全的解決方案(提供的信息)。 –

+0

這兩個域名都在同一個主機上... –