2012-08-29 196 views
3

我需要重定向所有子域請求重定向到我的主域在我的htaccess。我需要它也包含某種通配符重定向。如何在htaccess中將所有子域名請求重定向到主域名?

例如washington.mysite.com/重定向到mysite.com/washington

,但我需要也重定向子域的任何舊的URL到mysite.com/washington

例如washington.mysite.com/category.aspx?washington-attractions & CATID = 17重定向到my-site.com/washington

這是我到目前爲止的代碼:

RewriteCond %{HTTP_HOST} ^washington\.mysite\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.washington\.mysite\.com$ 
RewriteRule ^(.*)$ "http\:\/\/www\.mysite\.com\/washington/$1" [R=301,L] 

但是它仍然附加老新網址的網址

eg washington.mysite.com/category.aspx?washington-attractions & CATID = 17重定向到my-site.com/washington/category.aspx?washington-attractions & CATID = 17

基本上我需要重定向washington.mysite .COM/*(任何)到my-site.com/washington

任何建議,將不勝感激:)

回答

5
RewriteCond %{HTTP_HOST} ^(www\.)?washington\. [NC] 
RewriteRule ^(.*)$ http://www.mysite.com/washington [R=301,L] 

在你RewriteRule你有其中(.*)通配符的括號匹配/$1。這就是爲什麼你要從附加的舊URL獲取路徑。

我組合了你的2 RewriteCondition's,使得(www\.)匹配可選與?

[NC]標誌是nocase標誌。

要清除查詢字符串,追加?至重寫URL

RewriteCond %{HTTP_HOST} ^(www\.)?washington\. [NC] 
RewriteRule ^(.*)$ http://www.mysite.com/washington? [R=301,L] 
+0

真棒結束。這似乎正在重新指向正確的頁面。但是它仍然會將?查詢附加到URL http://www.mysite.com/washington?washington-attractions&CatID=17任何剝離它的方法都不會混淆用戶? – nicoz

+0

我爲你更新了我的答案。 – deefour

+0

超級。那樣做了。謝謝 :) – nicoz

相關問題