2012-09-17 21 views
0

我們使用的是基於系統的Plesk,只是最近更改域名。我想將所有進入舊域的請求重定向到新的域。以類似的方式提出了很多問題,但我的情況有點不同。我想確保所有子域名都路由到新域中的相同子域。我在docroot中設置了一個通用的htaccess,但由於某種原因,它也適用於所有子域。的.htaccess與子域的域變化 - 阿帕奇+的Plesk

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

我怎樣才能讓這個更一般的,這樣子域也適當地被路由?對於獎勵積分,我如何將https請求路由到https並將http路由到http。

我想補充的是,規則轉換第一URL到第二這是不可取的:

http://SUBDOMAIN.olddomain.com/somepath/somefile.php 
http://newdomain.com/subdomains/SUBDOMAIN/httpdocs/somepath/somefile.php 

適當的變換應建立以下網址:

http://SUBDOMAIN.newdomain.com/somepath/somefile.php 

最後,這應該適用於通配符子域。

感謝先進!

回答

0

嘗試:

# ignore "www." 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.olddomain.com$ [NC] 
RewriteRule ^(.*)$ http://%1.newdomain.com/$1 [L,R=301] 

你想要這個在此之前,你已經有了規則。

既然你編輯你的問題,你要處理的新網站一般子域的額外內部重寫,這有什麼好做的重定向。這是全新的功能,這是一個301重定向的範圍之外。您將需要特殊的規則來處理子域的內部路由:

RewriteCond %{REQUEST_URI} !^/subdomains/ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.newdomain.com$ [NC] 
RewriteRule ^(.*)$ /subdomains/%1/httpdocs/$1 [L] 
+0

我對此感到抱歉。我澄清了上面所需的重定向路徑。基本上,我想創建以下網址http://SUBDOMAIN.newdomain.com/somepath/somefile.php,也有將其與通配符子域工作。 – VinnyD

+0

@VinnyD你問2個完全不同的東西在這裏 –