两种js获取当前域名代码

JavaScript014

两种js获取当前域名代码,第1张

今天给各位朋友介绍两种js获取当前域名

代码如下

//获取当前域名

1、window.location.host

2、document.domain

//获取当前页面地址

url

=

window.location.href

例子

代码如下

<script

language="javascript">

//获取域名

host

=

window.location.host

host2=document.domain

//获取页面完整地址

url

=

window.location.href

document.write("<br>host="+host)

document.write("<br>host2="+host2)

document.write("<br>url="+ur(www.45it.net)l)

</script>

补充:

获取当前域名信息

代码如下

thisTLoc

=

top.location.href

thisPLoc

=

parent.document.location

thisTHost

=

top.location.hostname

thisHost

=

location.hostname

strwrite

=

thisTLoc:

["

+

thisTLoc

+

"]”

strwrite

+=

thisPLoc:

["

+

thisPLoc

+

"]”

strwrite

+=

thisTHost:

["

+

thisTHost

+

"]”

strwrite

+=

thisHost:

["

+

thisHost

+

"]”

document.write(

strwrite

)

这个方法倒是不少,不过要根据自己的具体环境参考选择:

方法一:用js跳转

在空间上分别绑定www.aaa.com和www.bbb.com

把www.aaa.com网站文件传到根目录,把www.bbb.com网站传到./bbb/目录

把下面的代码保存为domain.js,然后上传到空间根目录

JavaScript代码

switch(location.host){ 

case'www.bbb.com':   

location.href="http://www.boaer.com/bbb/"  

break  

}

往空间根目录的首页的<head>与</head>之间加入<scriptlanguage='javascript'src="/bbb/domain.js"></script>当输入www.aaa.com访问时看不到任何变化,但是当输入www.bbb.com访问时,浏览器自动跳转到www.bbb.com/bbb/。

要实现多个网站可以依此类推。或者直接在头部添加类似如下代码:

<script language=javascript>

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

this.location = "www.bbb.com" + this.location.pathname + this.location.search

</script>

方法二:(推荐)

用server.Transfer("")来实现一个空间多个站的方法

先将所有的域名绑定到您的虚拟主机上,然后将虚拟主机根目录中的index.asp(首页文件)里加入下列代码就可以了:ASP/Visual Basic代码

<%

sn=lcase(Request.ServerVariables("SERVER_NAME")) '用于获取用户是通过哪个域名访问的,并转换成小写

if sn="www.abc.net" or sn="abc.net"   then server.Transfer("default1.asp") 

if sn="www.def.net"   or sn="def.net" then server.Transfer("index.html") 

%>

效果:如果输入的域名是www.abc.net或abc.net的话,就访问default1.asp页面,如果是用def.net或www.def.net的话就调用index.html文件。

方法三:(最方便管理,一个空间放的站越多越推荐)

方法是利用一个asp文件通过浏览器输入的域名,判定是要打开那个文件夹里的站点,来实现一个虚拟放置多个站点(缺点例如打开abc.com,在浏览器中看到的是abc.com/b因为站点在b目录下)

其他说明:如果虚拟主机不支持子目录绑定,这是非常有效的办法实现方法如下 :先建立一个默认主页index.asp,把A站放在A文件夹下,B站放在B文件夹下,C站放在C文件夹下。 index.asp网页文件如下 :

ASP/Visual Basic代码

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

response.redirect "a/index.asp" 

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

response.redirect "b/index.asp" 

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

response.redirect "c/index.asp" 

else 

response.redirect "aaa/index.asp" 

end if%>

代码作用说明:

如果用户访问 www.a.com 程序跳转至 空间目录下 a/index.asp

如果用户访问 www.b.com 程序跳转至 空间目录下 b/index.asp

如果用户访问 www.c.com 程序跳转至 空间目录下 c/index.asp

如果用户访问 没有指定的 程序跳转至 空间目录下 aaa/index.asp

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

response.redirect "b/index.asp"

这段是可以无限复制的,一个虚拟主机放几百个站点就是自己设置的了只要把域名都绑定在虚拟主机上,然后设置这个域名所绑定的站点就OK了,这种要看虚拟主机能绑多少个玉米。能绑100个的话就能放100个站,并且利于网站管理,这样做可以根据文件夹名,就知道这个是哪个站。

PHP空间的方法

利用PHP是可以实现这个功能的。不但让他运行多个网站,而且还可以实现每个网站独立域名。下面把详细的步骤说明一下。首先了解一下$_SERVER['HTTP_HOST']变量。这个变量在PHP中是用来取浏览器中所输入的地址的。可以实现上面的功能了

先把需要的两个域名解析到空间。比如:www.***com 和 www.***.cn 两个域名。如果有更多的域名也没关系。方法是一样的。

把默认文档设置为index.php,当然空间需要是支持PHP的哦。:)

3、利用if ... else 来判断来访地址,并作出分析。代码如下:

<?if($_SERVER['HTTP_HOST']=="www.123.com"){?>

<META HTTP-EQUIV="Refresh" CONTENT="1URL=http://www.123.com/main">

<?}else if($_SERVER['HTTP_HOST']=="mycalf.com"){?>

<META HTTP-EQUIV="Refresh" CONTENT="1URL=http://123.com/main">

<?}else if($_SERVER['HTTP_HOST']=="www.456.cn"){?>

<META HTTP-EQUIV="Refresh" CONTENT="1URL=http://www.456.cn/home">

<?}else{?>

<META HTTP-EQUIV="Refresh" CONTENT="1URL=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/ 域名得到的效果是一样的。

其实空间麻烦的是数据库问题,不过数据库也是可以多个网站共享一个数据库的,只要不让表名一样就可以了。访问起来道理差不多。

跨域共享cookie的方法:设置cookie.setDomain(".jszx.com")

A机所在的域:home.langchao.com,A有应用cas

B机所在的域:jszx.com,B有应用webapp_b

1)在cas下面设置cookie的时候,增加cookie.setDomain(".jszx.com"),这样在webapp_b下面就可以取到cookie。

2)这个参数必须以“.”开始。

3)输入url访问webapp_b的时候,必须输入域名才能解析。比如说在A机器输入:http://lc-bsp.jszx.com:8080 /webapp_b,可以获取cas在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080 /webapp_b则不可以获得cookie。

4)设置了cookie.setDomain(".jszx.com"),还可以在默认的home.langchao.com下面共享。