2011-09-09 51 views
0

我有一個很早以前使用簡單的asp創建的站點。這是一個酒店網站。它包含列表式頁面和個別酒店頁面。目前,我的網站託管在支持PHP的Windows服務器上(但顯然沒有.htaccess支持)。幾個月前,我開始使用php/mysql重新編碼整個網站。質量301在站點遷移後使用.htaccess重定向

首先,我創建了新的列表式頁面,爲了保持良好的搜索引擎排名,我在我的主機控制面板上做了必要的301重定向。這些網頁在過去幾個月已被Google很好地編入索引,因此它們都可以。

現在我準備好重新編碼剩餘的酒店頁面(約400),現在我想將整個網站遷移到支持.htaccess的Apache服務器。

酒店頁面有兩種語言版本,英文和德文。
舊的英文ASP酒店頁面位於www.mysite.com/hotel/hotel-name.asp,我想將它們重定向到www.mysite.com/hotel/hotel-name.php,so在這種情況下,只有文件擴展名從.asp更改爲.php。

老德ASP頁面酒店都位於www.mysite.com/hotel/deutsch/hotel-name.asp,我想他們重定向到www.mysite.com/hotel/hotel-name。 de.php,所以在這種情況下,不僅文件擴展名從.asp改爲.php,而且文件名和路徑也一樣。

我的問題是:如何使用.htaccess進行必要的質量重定向?

預先感謝您。

回答

0

這應該做的伎倆:

RewriteRule /hotel/deutsch/(.+?)\.asp /hotel/$1.de.php [R=301,L] 
RewriteRule /hotel/(.+?)\.asp /hotel/$1.php [R=301,L] 

編輯:對不起,我錯過了德語語言頁面* .de.php。我已經更新了英文和德文頁面的單獨重寫的答案。

0

這將工作:

RewriteEngine On 

# redirect German version 
RewriteRule ^hotel/deutsch/(.+)\.asp$ http://www.mysite.com/hotel/$1.de.php [R=301,L] 

# redirect English version 
RewriteRule ^hotel/(.+)\.asp$ http://www.mysite.com/hotel/$1.php [R=301,L] 

的規則順序很重要,在這裏。首先我們匹配德文版本,然後才匹配英文頁面(英文頁面的URL模式更爲寬泛,並且也會匹配德語網址,最終導致錯誤的重定向)。

+0

@Yaelede所以..這有效嗎? – LazyOne