2011-03-11 97 views
1

RE:.htaccess - how to force "www." in a generic way?htaccess的:如何強制WWW的通用方式

我之前問過這個問題,並得到了這樣的回答:

RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

它的工作原理,但現在我在響應看到301 Moved Permanently頭。我想消除301s。問題是第二個重寫條件嗎?它應該是「不是以'www。'開頭的。其次是主機名「?

順便說一句,我希望這個解決方案,任何服務器工作(意思是,我不想硬編碼我的域名)。

對此提出建議?

UPDATE:

我才意識到,以上不能正常工作。如果我有以下幾點:

http://images.domain.com

我不希望這樣的改變:

http://www.images.domain.com

我不希望這影響到子域。我只希望它影響失蹤www

+0

重新作出任何服務器上的解決方案的工作,它應該做的已經,不應該嗎? – 2011-03-11 11:20:47

+0

@Pekka,這個呢。我只是想告訴這裏的專家,以便他們不會給我提供一個涉及硬編碼我的域名的答案。 – StackOverflowNewbie 2011-03-11 11:30:43

+0

@謝謝,我認爲你想做的事情是無法完成的。爲什麼301是一個問題? – 2011-03-11 11:41:10

回答

2

重定向到不同的域是由定義不可能沒有一些頭重定向。如果您想要更改用戶瀏覽器中的URL,則必須強制發出新請求。這是沒有辦法的。

您將有to take your pick - 301,302303狀態代碼是最直接的選擇。

+0

我更新了我的問題,並帶來了一個額外的問題。你能幫忙嗎?我現在有點迷路了。 – StackOverflowNewbie 2011-03-11 13:00:37

+0

@StackOverflow附加的'RewriteCond%{HTTP_HOST}^example.com $'可以解決它,但它會將其綁定到特定的域。至於如何排除'圖像。*',也許問濃湯中的其他問題,他更瞭解這個東西 – 2011-03-11 13:02:06

+0

你知道我怎麼才能讓規則說「不通過www後面跟着一個點,然後將開始HTTP主機「?這是我認爲我想重寫的唯一時間。 – StackOverflowNewbie 2011-03-11 19:54:05