1. 程式人生 > >2個域名2個網站共用一個空間的方法

2個域名2個網站共用一個空間的方法

很多空間支援多域名繫結,但是不支援子目錄繫結,可以考慮如下幾種方法來實現一個空間放多個域名站點的方法,只是其他站點都需要在一個目錄下大開。

方法一:用js跳轉

  1. 把下面的程式碼儲存為domain.js,然後上傳到空間根目錄

    JavaScript程式碼

    switch(location.host){    

    break;   

    }

  2. 往空間根目錄的首頁的<head>與</head>之間加入

    <scriptlanguage='javascript'src="/bbb/domain.js"></script>

  3. 這樣便實現了同一個空間安裝2個網站了,要實現多個網站可以依此類推。或者直接在頭部新增類似如下程式碼:

    <script language=javascript>

    if (document.domain =='www.boaer.com')

    </script>  

方法二:(推薦)

用server.Transfer("")來實現一個空間多個站的方法

  1. 先將所有的域名繫結到您的虛擬主機上,然後將虛擬主機根目錄中的index.asp(首頁檔案)里加入下列程式碼就可以了:ASP/Visual Basic程式碼

    <%   

    sn=lcase(Request.ServerVariables("SERVER_NAME")) '用於獲取使用者是通過哪個域名訪問的,並轉換成小寫   

    %>   

    效果:如果輸入的域名是www.abc.net或abc.net的話,就訪問default1.asp頁面,如果是用def.net或www.def.net的話就呼叫index.html檔案。

  2. 網上還有一些教程是用response.redirect來實現轉向,但在這裡建議使用server.Transfer("")來實現這個功能,好處有以下幾個方面:

    不會出現頁面跳轉,直接輸入網址後,網址後不會帶任何檔案,訪問者不會看出你的兩個網站是放在同一虛擬主機上。
    server.Transfer("")不會阻擋搜尋引擎對你的網站的收錄,而response.redirect可不一定。

方法三:(最方便管理,一個空間放的站越多越推薦)

方法是利用一個asp檔案通過瀏覽器輸入的域名,判定是要開啟那個資料夾裡的站點,來實現一個虛擬放置多個站點(缺點例如開啟abc.com,在瀏覽器中看到的是abc.com/b因為站點在b目錄下) 

其他說明:如果虛擬主機不支援子目錄繫結,這是非常有效的辦法 
實現方法如下 :先建立一個預設主頁index.asp 
然後把A站放在A資料夾下,B站放在B資料夾下,C站放在C資料夾下。 
index.asp網頁檔案如下 :
ASP/Visual Basic程式碼

  1. <%if Request.ServerVariables("SERVER_NAME")="www.a.com " then    

    response.redirect "a/index.asp"    

  2. elseif Request.ServerVariables("SERVER_NAME")="www.b.com " then    

    response.redirect "b/index.asp"    

  3. elseif Request.ServerVariables("SERVER_NAME")="www.c.com " then    

    response.redirect "c/index.asp"    

  4. else    

    response.redirect "aaa/index.asp"    

    end if%>    

  5. 程式碼作用說明:
    如果使用者訪問 www.a.com 程式跳轉至 空間目錄下 a/index.asp
    如果使用者訪問 www.b.com 程式跳轉至 空間目錄下 b/index.asp
    如果使用者訪問 www.c.com 程式跳轉至 空間目錄下 c/index.asp
    如果使用者訪問 沒有指定的 程式跳轉至 空間目錄下 aaa/index.asp
    怎麼樣,簡單吧。

  6. elseif Request.ServerVariables("SERVER_NAME")="www.b.com " then 
    response.redirect "b/index.asp"
    這段是可以無限複製的,一個虛擬主機放幾百個站點就是自己設定的了只要把域名都繫結在虛擬主機上,然後設定這個域名所繫結的站點就OK了,這種要看虛擬主機能綁多少個玉米。能綁100個的話就能放100個站,並且利於網站管理,這樣做可以根據資料夾名,就知道這個是哪個站。

  7. PHP空間的方法

  8. 利用PHP是可以實現這個功能的。不但讓他執行多個網站,而且還可以實現每個網站獨立域名。下面把詳細的步驟說明一下。首先了解一下$_SERVER['HTTP_HOST']變數。這個變數在PHP中是用來取瀏覽器中所輸入的地址的。可以實現上面的功能了

  1. 先把你需要的兩個域名解析到空間。比如:www.***com 和 www.***.cn 兩個域名。如果有更多的域名也沒關係。方法是一樣的。

  2. 把預設文件設定為index.php,當然空間需要是支援PHP的哦。:)

  3、利用if ... else 來判斷來訪地址,並作出分析。程式碼如下:
<?if($_SERVER['HTTP_HOST']=="www.123.com";){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://www.123.com/main">
<?}else if($_SERVER['HTTP_HOST']=="mycalf.com"){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://123.com/main">
<?}else if($_SERVER['HTTP_HOST']=="www.456.cn";){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://www.456.cn/home">
<?}else{?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://www.456cn/home">
<?}?>
  4、完成
  這裡要說明的一點是,有的時候域名是用大寫的,那麼就需要對$_SERVER['HTTP_HOST']這個變數進行處理,來讓他把所有的字元轉換成小寫。
  程式碼如下:
<?
$querystring = preg_replace(array("/\(\)/","/_/"),array("","-"),$_SERVER["QUERY_STRING]);
$I = strtolower(trim($_SERVER['HTTP_HOST']));
?>
  如果是這樣寫,就需要把上面的<?if($_SERVER['HTTP_HOST']=="www.123.com";){?>這句變為<?if($I=="www.123.com";){?>,這樣就可以在輸入網址是大寫的時候,也可以正常訪問了。
這個方法也有一個不足點,就是需要在域名後面跟一個目錄名。但是如果你不怕亂的話,也可以把兩個網站都放到根目錄下。但是推薦是每個網站一個目錄。現在許多空間商,都支援5個以內的域名的解析。這樣就可以買一個空間,擁有5個網站了。
這個辦法的優勢也是有的,他每個域名都是可以訪問其他網站的,比如輸http://www.123.com/home/ 與訪問http://www.123.cn/ 域名得到的效果是一樣的。
其實空間麻煩的是資料庫問題,不過資料庫也是可以多個網站共享一個數據庫的,只要不讓表名一樣就可以了。訪問起來道理差不多。OK。

(二)、PHP 跳轉程式碼實現一個網站空間繫結多個域名,建立多個網站

先建立一個預設主頁index.php,然後把A站放在A資料夾下,B站放在B資料夾下,C站放在C資料夾下,index.php網頁檔案如下

<?php
switch ($_SERVER["HTTP_HOST"])
{
case "www.a.com":
header("location:a/index.php");
break;
case "www.b.com":
header("location:b/index.php");
break;
case "www.boaer.com":
header("location:cboaer/index.php");
break;
}
?>

如果訪問 www.a.com 程式跳轉至 空間目錄下 a/index.php

如果訪問 www.b.com 程式跳轉至 空間目錄下 b/index.php

如果訪問 www.boaer.com 程式跳轉至 空間目錄下 boaer/index.php

利用一個php檔案通過瀏覽器輸入的域名,判定他是要開啟那個資料夾裡的站點,來實現一個虛擬放置多個站點(缺點例如開啟abc.com,在瀏覽器中看到的是abc.com/b因為站點在b目錄下)

其他說明:如果虛擬主機不支援子目錄繫結,這是唯一有效的辦法

JS版本

<script>try {if( self.location == "http://玉米一/" ) {
top.location.href = "http://玉米一/目錄";
}
else if( self.location == "http://玉米二/" ) {
top.location.href = "http://玉米二/目錄";
}
else if( self.location == "http://玉米三/" ) {
top.location.href = "http://玉米三/目錄";
}
else if( self.location == "http://玉米四/" ) {
top.location.href = "http://玉米四/目錄";
}
else {document.write ("錯誤的訪問地址")}} catch(e){}</script>

利用Javascript語言
echo "<scriptlanguage='javascript'>";
echo " location='網址';";
echo "</script>";

用javascript定時重新整理頁面
<script type="text/javascript">

window.location.Reload()應該是重新整理.(如果有資料提交的話,會提示是否提交的(是和否選項))
window.location.href=window.location.href;

最好不要用location.reload(),而用 location=location比較好,還有在模式視窗(showModalDialog和 showModelessDialog)前者不能用。

X秒自動跳轉

header("refresh:3;url=http://www.163.com");
print('正在載入,請稍等...<br>三秒後自動跳轉~~~');
<p>{MsgInfo}正在跳轉,請稍後......</p>

<p>如果沒有自動跳轉,請點<ahref="{JumpUrl}"><strong>這裡</strong></a>繼續!</p& gt;
<META HTTP-EQUIV="refresh" CONTENT='{JumpDelay};URL={JumpUrl}'>
<script language="javascript">
function Jump()
{
window.location = '{JumpUrl}';
}
document.onload = setTimeout("Jump()" , {JumpDelay} * 1000);
</script>

類goto.php跳轉使用方法簡析

看下演示

可以直接跳到b網站,但是又不算外鏈。

使用方法是個goto.php檔案,傳到ftp空間根目錄,把www.a.com改成你的域名,後面b的改成外鏈地址就可以了

把下面的存為goto.php

<? $url=$_GET["url"];header("Location:".$url);?>

更換永久連結

如連結是:mcooo.com_a.com

在頭部加上以下程式碼讓他自動跳轉到a.com正確的連結地址上,

<?php
if(strripos($_SERVER['REQUEST_URI'],"_"))
{
$url="http://baidu.com/".substr($_SERVER['REQUEST_URI'],strripos($_SERVER['REQUEST_URI'],"_")+1);
header('Location: '.$url);
}
?>

相關推薦

2域名2網站共用一個空間方法

很多空間支援多域名繫結,但是不支援子目錄繫結,可以考慮如下幾種方法來實現一個空間放多個域名站點的方法,只是其他站點都需要在一個目錄下大開。 方法一:用js跳轉 把下面的程式碼儲存為domain.js,然後上傳到空間根目錄 JavaScript程式碼 switch

c++多文件中如何共用一個全局變量

calc 其它 pop 例子 頭文件 標準 關鍵字 word sin 例子: 頭文件:state.h 源文件:state.cpp 其它源文件:t1.cpp t2.cpp t3.cpp, 這些源文件都包含頭文件state.h。 需要定義一個全局變量

一個ip對應多域名ssl證書配置-Nginx實現多域名證書HTTPS

引用處: 一個ip對應多個域名多個ssl證書配置-Nginx實現多域名證書HTTPS Nginx配置多個HTTPS域名的方法 第一步:一臺伺服器,兩個或者多個域名對映。首先購買https,獲取到CA證書,兩個域名就得到兩套或多套證書 第二步:現在就是Nginx和OpenSSL的安裝與

利用多域名來儲存網站資源

1. CDN快取更方便 CDN:是構建在網路之上的內容釋出網路,依靠部署在各地的邊緣伺服器,通過中心平臺的負載均衡、內容釋出、排程等功能模組,是使用者就近獲取所需內容,降低網路擁塞,提高使用者訪問響應速度和命中率。CDN的關鍵技術主要是內容儲存和分佈技術。簡單來說,CDN主要用來使使用者

IIS伺服器釋出同一個IP多域名網站

總體介紹: 1.      Dns新增區域及主機; 2.      Iis新增站點,配置主機頭,指向第一步的區域主機 一、準備工作: 1.      安裝iis6.0, 2.      安裝dns元件; 如果以上未安裝,請通過新增刪除程式的,新增刪除元件進行安裝 二、在DN

ASP.NET MVC 搜索+保存搜索結果.2按鈕共用一個表單

req request exp select ucc 結果 total cli 調用 想要實現的效果,1.搜索功能 2.搜索結果保存到text功能 前臺代碼 一個表單2個按鈕,通過JS代碼來修改form的action,來實現調用不同的後臺代碼 &l

jmeter-邏輯控制器之 交替控制器(實現2請求每次只執行其中一個

cnblogs 兩個 str 運行 線程 分享 技術分享 三次 src 交替控制器: 案例:兩個請求每次只能執行其中一個,可使用交替控制器。 1.線程組-》添加-》邏輯控制器-》交替控制器 2.在控制下添加兩個http請求。運行的時候第一次循環執行第一個,第二次循環執

網站共用相同一級域名80端口的方法

block content 核心 .html audio section 工具 開機 http 使用nat123達到外網直接訪問多個內網網站(多個網站共用同一個一級域名80端口情況) 只有一個域名情況下,通過nat123可以讓多個網站在外網訪問時都是80端口。

2.5給定兩用鏈表表示的整數,每個結點包含一個數位。這些數位是反向存放的,也就是個位排在鏈表首部。編寫函數對這兩整數求和,並用鏈表形式返回結果。

直接 logs next 末尾 做的 nbsp before != 結果 其實仔細想想是挺簡單的,我們要做的只是記得進位。 LinkedListNode addLists(LinkedListNode l1, LinkedListNode l2, int carry) /

WEB前端面試題 分別使用2、3、5DIV畫出一個大的紅十字

plain rotate tle copyto XML order bar back tro [html] view plain copy <!DOCTYPE html> <!--兩個DIV--> <html>

【校招面試 之 劍指offer】第9-2題 用兩隊列實現一個

實現 bsp ont 入隊 out == end nbsp img #include<iostream> #include<queue> using namespace std; // 對於出棧解決的思路是:將queue1的元素除了最後一個外全部放

java--Fibonacc由數字1、1、2、3...組成的,從第三數字起每一個數字為前兩數字的和。建立一個方法,接受一個整數引數,顯示從第一元素開始總共由該引數指定的個數所構成的所有斐波那契數

題目完整描述:一個斐波那契數列是由數字1、1、2、3、5、8、13、21、34等等組成的,其中每一個數字(從第三個數字起)都是前兩個數字的和。建立一個方法,接受一個整數引數,並顯示從第一個元素開始總共由該引數指定的個數所構成的所有斐波那契數字。例如,如果執行 java Fibonacci 5(Fib

微擎多平臺、域名共用一個公眾號Oauth回撥域名終極解決方案

通宵搞了一晚,終於把這個問題解決了! 需求是這樣的 現在有3個不同的域名,一個認證的微信公眾號,由於公眾號授權回撥頁面域名只能寫一個,因此對於我有多個微擎系統分別部署在不同伺服器上(一臺做營銷業務、一臺做分銷系統、一臺做餐飲系統),分別部署的原因是主要是兩點:分流和防止一個域名被封(主要是微信營

記centos7.2+上tomcat啟動成功的監控指令碼和nginx可配置多域名

監控指令碼為: #!/bin/sh  DATE=$(date +"%Y-%m-%d") tail -f  /dir(你自己tomcat的位置)/catalina.out.$DATE|sed "/Server/{/startup/q}"  echo '啟動成功'

Cloudera Manager 和CDH6.0.1安裝,解除安裝,各步驟截圖(此博文為筆者辛苦勞作最終生成的,使用了3熬到凌晨2~4點的夜晚,外加一個週末完成,請轉載時記錄轉載之處,謝謝)

1 Cloudera 文件總地址 https://www.cloudera.com/documentation/enterprise/6/6.0.html 2 Cloudera Manager 和CDH下載地址 Cloudera Manager下載地址: https://a

防止多域名解析到一個網站:導致權重降低

 如果你的網站用的是獨立伺服器或獨立IP虛擬主機,一般都是可以用IP直接訪問網站的,所有域名只要解析到你的IP就可以訪問你的網站。如果一些亂七八糟的域名都解析到你的IP,這樣搜尋引擎就會收錄很多域名和你域名同樣的內容,這樣對SEO優化很不利,老站長xrnic有很多客戶都是用的

Java經典演算法集——如下:用1、22、3、4、5這六數字,用java寫一個main函式,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"與"5"不能相連。

轉:http://www.blogjava.net/SongJunke/articles/101741.html 演算法程式題:     該公司筆試題就1個,要求在10分鐘內作完。     題目如下:用1、2、2、3、4、5這六個數字,用java寫一個main函式,打印出所

程式設計師面試金典: 9.4樹與圖 4.2給定有向圖,設計一個演算法,找出兩節點之間是否存在一條路徑。

#include <iostream> #include <stdio.h> #include <vector> #include <queue> using namespace std; /* 問題:給定有向圖,設計一個

5.2 用單臺虛擬主機實現多域名

一臺Web伺服器可搭建多個獨立域名的Web網站。 一用單臺虛擬主機實現多個域名  .背景                  HTTP/1.1規範允許一臺HTTP伺服器搭建多個站點。例如:提供Web託管服務的供應商,可以用一臺伺服器為多位客戶服務,也可以以每位客戶持有的域名執

.分析以下需求,並用程式碼實現 1.定義List集合,存入多字串 2.刪除集合元素字串中包含0-9數字的字串 只要字串中包含0-9中的任意一個數字就需

public class MyText2 {public static void main(String[] args) {/** 2.分析以下需求,並用程式碼實現 1.定義List集合,存入多個字串*  2.刪除集合元素字串中包含0-9數字的字串* (只要字串中包含0-9