2015-03-02 26 views
1

我有一個域(例如doma.in)我只用於轉發目的。所以我創造了這個.htaccess定義:轉發所有請求但以不同方式處理根呼叫

RewriteEngine On 
RewriteRule ^(.*)$ http://www.mydomain.tld/in/$1 [R=301,L] 

這成功地將來電轉駁按照以下方案

http://doma.in/abc  -> http://www.mydomain.tld/in/abc 
http://doma.in/123  -> http://www.mydomain.tld/in/123 
http://doma.in/abc/123 -> http://www.mydomain.tld/in/abc/123 

但我要轉發的根通話,帶或不帶www

http://doma.in 
http://www.doma.in 
http://doma.in/ 
http://www.doma.in/ 

到根網址http://www.mydomain.tld

我已嘗試添加另一個RewriteCond,但是這個設置拋出所有呼叫服務器錯誤:

RewriteEngine On 
RewriteRule ^(.*)$ http://www.mydomain.tld/o/$1 [R=301,L] 

RewriteCond ^(.*)doma.in/?$ 
RewriteRule ^(.*)$ http://www.mydomain.tld [R=301,L] 

如何已經適應我的.htaccess爲了支持我的要求嗎?

回答

1

您可以使用:

RewriteEngine On 

# root URL 
RewriteRule ^/?$ http://www.mydomain.tld/ [R=301,L] 

# all but root URL 
RewriteRule ^(.+)$ http://www.mydomain.tld/in/$1 [R=301,L] 

確保在一個新的瀏覽器來測試這個以避免老301緩存。

+1

耶,很酷。謝謝! – 2015-03-02 10:24:03

+1

不客氣,很高興幫助。 – anubhava 2015-03-02 11:05:15