2012-08-10 57 views
1

我看了幾十個例子,但我仍然有問題。我試圖重定向和重寫如下:重定向到子域,然後用.htaccess重寫

我長的URL是:

http://old.domain.com/index.php?AssetID={long_guid_here} 

我已經成功地重定向到:

http://old.domain.com/{long_guid_here} 

但現在我需要重定向整件事於:

http://new.domain.com/index.php?AssetID={long_guid_here} 

,並使它看起來不錯:

http://new.domain.com/{long_guid_here} 

下面讓我重定向,但不是 「好」 的一部分:

RewriteCond %{HTTP_HOST} ^old.domain.com$ 
RewriteRule ^(.*)$ http://new.domain.com/index.php?AssetID=$1 

回答

1

試試這個:

RewriteCond %{HTTP_HOST} ^old.domain.com$ 
RewriteRule ^(.*)$ http://new.domain.com/$1 [L,QSA,R=301] 

注意:您必須添加.htaccess文件中new.domain.com重寫不錯正常

編輯

如果你new.domain.com指向同一個目錄中old.domain.com(即meens相同htaccess文件),然後將這些線條太:

RewriteCond %{HTTP_HOST} ^new.domain.com$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?AssetID=$1 [L,QSA] 
+0

這就是問題所在,它實際上是同一個虛擬主機。這兩個子域名都在那裏,我們現在只是把它叫做別的。我需要重定向和重寫才能順序發生。 – Bill 2012-08-10 03:01:27

+0

確定,然後檢查我的編輯 – Oussama 2012-08-10 03:03:53

+1

如果您將任何其他查詢字符串值發送到PHP腳本,請確保使用'QSA'標誌。 – 2012-08-10 03:03:57