2013-11-22 14 views
1

如果我把<base href="http://www.example.com"/>然後,如果我在我的瀏覽器WWW.example.com一切都很好,但是當我去example.com有些事情與級聯樣式表單文件和Java腳本文件被擰緊(例如bootstrap中的圖標不顯示),直到我點擊我網站上的其他頁面,因此它轉換爲WWW.example.com/page並從那裏一切都很好......我已嘗試使用<base href="http://example.com"/>並轉到WWW.example.com,而其他方式也是如此。我怎樣才能解決這個問題?沒有萬維網的鏈接不正常當我有<base href>與萬維網

+0

只是警告這裏關於依託基地的HREF的一句話:有很多在那裏忽略尋找這個寫得很差的爬蟲。因此,他們將生成數百個404。 – cimmanon

回答

0

您可以將base標記設置爲用戶輸入的相應子域。或者,您可以使用簡單的mod_rewrite規則將所有請求重定向到www子域。

第一種方式,我相信你可以用JavaScript做到這一點,但不是100%確定。嘗試在代碼的開始處使用此代碼,將默認基底代碼www

if(document.URL.indexOf('://www.')===-1){ 
    var base = document.getElementsByTagName('base')[0]; 
    base.href = base.href.replace('://www.','://'); 
} 

另一種方法是使用mod_rewrite,這是很容易在Apache的.htaccess文件來完成。

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

我個人認爲第二種方式是更好的選擇。首先,因爲我不完全確定javascript場景可以工作,並且即使這樣做,JavaScript也不會運行在所有瀏覽器上,特別是在漫遊器上。所以我建議你使用.htaccess。祝你好運!

+0

是比其他兩個更好的嗎?我怎麼能得到用戶輸入的子域? – laza89

+0

@ laza89我更新了答案,看看。 –

+0

感謝病了,然後用第二種方式 – laza89

0

如何編輯您的DNS信息設置「example.com」鏈接到真實IP和didn`t爲301重定向

相關問題