2013-04-18 68 views
1

我試圖從替換子域名 「新聞 .domain.com /路徑/ ..」 到 「移動 .domain.com /路徑/ ..」,使用JavaScript將子域名替換爲其他子域使用JavaScript?

任何想法如何實現這一目標?

+1

正如其他人所暗示的那樣,您是否可以更清楚地知道想要實現的目標:是否要將用戶的瀏覽器重定向到新的URL,還是隻想知道如何將第一個字符串轉換爲第二? – FixMaker

+0

我想在網址中替換子域名稱的消息,而不是移動,所以它顯示頁面的移動版本。 – Bala

回答

-2

我使用Java腳本,但沒有運氣嘗試和對我來說,我使用下面的代碼在.httaccess文件

RewriteCond %{HTTP_USER_AGENT} "iphone|ipod|android" [NC] 
RewriteCond %{HTTP_HOST} !^mobile.domain.com 
RewriteRule ^(.*)$ http://mobile.domain.com/ [L,R=302] 

它將取代「新聞」子域到「移動」子域。希望它能幫助任何人。

-1

如果你想通過JS發送用戶到新的url - 使用document.location = "mobile.domain.com/path/.."

-2

您無法替換子域名。你可以使用javascript重定向。

<script type="text/javascript"> 
<!-- 
window.location = "http://mobile.domain.com/path/to/file.html" 
//--> 
</script> 
+1

我知道要重定向域名,我想更改單詞新聞到移動URL – Bala

4

我假設你想改變在通用格式xxxx.domain.com/...一個字符串轉換爲mobile.domain.com/...。這個規則表達式應該這樣做在JavaScript:

var oldPath = "news.domain.com/path/"; 
var newPath = oldPath.replace(/^[^.]*/, 'mobile') 
+0

是的,我會嘗試這個並回到你的 – Bala

+0

如何獲得當前路徑(舊路徑),因爲網址是動態的 – Bala

+0

我試過這個var oldPath = window.location.href; var newPath = oldPath.replace(/^[^.]*/,'mobile'); document.location = newPath;但沒有運氣。 – Bala

0

在參考FixMaker的評論對他answer

window.location.href會給你一個完全合格的URL(例如http://news.domain.com/path)。您需要考慮到的HTTP:運行上述代碼

的合適的正則表達式來處理請求方案時//前綴(HTTP/HTTPS)如下:

function replaceSubdomain(url, subdomain){ 
 
    return url.replace(/^(https?:\/\/)(www\.)?([^.])*/, `$1$2${subdomain}`); 
 
} 
 

 
let url1 = 'https://sub-bar.main.com'; 
 
let url2 = 'https://www.sub-bar.main.com'; 
 

 
console.log(replaceSubdomain(url1, 'foobar')); 
 
console.log(replaceSubdomain(url2, 'foobar'));