2010-07-04 52 views
1

我想在我的虛擬主機(mediatemple)上將一個子文件夾從一個域指向另一個域。我想使用內部重寫,而不是301重定向。這裏的目標htaccess跨域內部重寫?

http://www.clientdomain.com/blog/$1 --> http://www.mydomain.com/wpmu/clientdomain/$1 

在服務器端,結構是這樣的:

/x/y/z/domains/clientdomain.com/html/blog/ -- htaccess file is here 
/x/y/z/domains/mydomain.com/html/wpmu/ -- wpmu installation 

到目前爲止,我只與301個重定向的成功,但我的目標是要掩蓋的東西,使得WPMU可以在不透露其位置的情況下爲客戶的博客提供支持。這裏是我的工作301重定向:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/blog/ 
RewriteRule ^(.*)$ http://www.mydomain.com/wpmu/clientdomain/$1 [NC] 

是否有一種簡單的方法將其轉換爲內部重寫?我還沒有看到任何東西,但301個重定向對於這種類型的事情...提前

感謝,

凱西

+0

你試過絕對文件系統路徑而不是URI? – Gumbo 2010-07-04 23:09:07

+0

我還沒有成功,文件系統路徑的指定與htaccess中的URI不同?當我在我的RewriteCond中使用%{PATH_INFO}時,匹配失敗。 – Casey 2010-07-04 23:14:09

+0

文件系統路徑無效,因爲mod_rewrite不會低於$ {DOCUMENTROOT} – Casey 2010-07-08 19:06:03

回答

1

從我可以告訴,跨vhosted域實現這一重寫的唯一方法是使用一個符號鏈接之間愚弄mod_rewrite認爲它正在做一個內部重寫

-1

你在做什麼內部重寫。

對於一個301重定向你會寫[L,R = 301]:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/blog/ 
RewriteRule ^(.*)$ http://www.mydomain.com/wpmu/clientdomain/$1 [L,R=301] 
+1

'www.mydomain.com'不是域名在其下執行'RewriteRule',所以他所執行的規則將按照他的規定執行外部重定向。 – 2010-07-08 11:06:18

+0

啊,好的,現在我明白了。那麼沒有揭示真實URI的唯一方法就是充當代理。 例如參見mod_proxy的:http://httpd.apache.org/docs/1.3/mod/mod_proxy.html 或者文件系統上的 LN -s /x/y/z/domains/clientdomain.com使用符號鏈接/ html/blog//x/y/z/domains/mydomain.com/html/wpmu/應該幫助 – JochenJung 2010-07-08 11:12:05

+0

我使用符號鏈接結束了,跨域重寫不起作用。 – Casey 2010-07-08 19:04:22