2013-04-26 184 views
0

我試圖讓所有來自舊域名的網頁轉到具有相同文件結構的新域名上的相應網頁。我使用下面的代碼,但問題是舊的網頁轉到索引網頁,而不是相應的網頁。基本上我認爲捕獲URL的其餘部分的(。*)不會在重寫規則中顯示$ 1?.htaccess將多個域名重定向到單個域名

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com(.*) [NC] 
RewriteRule^http://www.newdomain.com$1 [R=301,L] 

回答

1

如果使用$1,你需要使用()捕捉到你的重寫規則的東西。 試試這個:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L] 

這重定向到http://olddomain.com/page.phphttp://www.newdomain.com/page.php

此外,如果可以有多個olddomain S,重定向任何網址並非在newdomain

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^(www\.)?newdomain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L] 

這重定向到http://notnewdomain.com/page.phphttp://www.newdomain.com/page.php

編輯:

這裏是我的測試截圖在http://htaccess.madewithlove.betested at htaccess.madewithlove.be

+0

接近,但下降的文件夾。例如:http://notnewdomain.com/folder/page.php轉到http://newdomain.com/page.php而不是http://newdomain.com/folder/page.php – 2013-04-26 20:35:36

+0

它也重定向'http: // example.com/folder/page.php'到'http:// www.newdomain.com/folder/page.php'。你是這個意思嗎? – showdev 2013-04-26 20:38:24

+0

它刪除/文件夾/並去http://www.newdomain.com/page.php – 2013-04-26 20:43:25

相關問題