2012-05-08 34 views
2

我想禁用子域,除了WWW,因此這將不再工作:subdomain.mysite.tld,但這:www.mysite.tldhtaccess的 - 禁用子域除了WWW

我也想要重定向從mysite.tldwww.mysite.tld,我知道該怎麼做,但如果有mysite.tld它不會重定向到www,相反它會拋出一個禁止的錯誤...

RewriteCond %{HTTP_HOST} !mysite.tld$ [OR] 
RewriteCond %{HTTP_HOST} !www.mysite.tld$ 
RewriteRule .* - [F] 

RewriteCond %{HTTP_HOST} !^www 
RewriteRule .? http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

回答

4

你可以嘗試:

RewriteCond %{HTTP_HOST} !^(www\.)?mysite\.tld$ [NC] 
RewriteRule^- [F,L] 

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
+0

這是我認爲的兩種選擇,對吧?所以瑪麗安必須選擇一個。 – Gerben

+0

@Gerben:對不起,我不理解你的評論。 – anubhava

+0

如果第一個RewriteRule與第二個RewriteRule匹配,則永遠不會執行。 – Gerben

1

要改寫到www:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mysite.tld[nc] 
RewriteRule ^(.*)$ http://www.mysite.tld/$1 [r=301,nc] 
+0

不會解決問題的子域。而是使用'RewriteCond%{HTTP_HOST}!^ www \ .mysite \ .tld $ [NC]' – Gerben

+1

是的,應該提到它不會解決子域問題......我不知道該怎麼做,謝謝! –

相關問題