很多站长朋友们都不太清楚php域名共用目录,今天小编就来给大家整理php域名共用目录,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 2个域名2个网站共用一个空间的方法 2、 phpstudy怎么绑定目录实现域名访问 3、 主站用PHP,子站使用主站域名子目录访问,用JSP ,怎么实现? 4、 问php根据域名访问不同跳转到不同子目录的方法 2个域名2个网站共用一个空间的方法很多空间支持多域名绑定,但是不支持子目录绑定,可以考虑如下几种方法来实现一个空间放多个域名站点的方法,只是其他站点都需要在一个目录下大开。
方法一:用js跳转
在空间上分别绑定和
把网站文件传到根目录,把网站传到./bbb/目录
把下面的代码保存为domain.js,然后上传到空间根目录
JavaScript代码
switch(location.host){
case'':
location.href=""
break;
}
往空间根目录的首页的<head>与</head>之间加入
<scriptlanguage='javascript'src="/bbb/domain.js"></script>
当输入访问时看不到任何变化,但是当输入访问时,浏览器自动跳转到。
这样便实现了同一个空间安装2个网站了,要实现多个网站可以依此类推。或者直接在头部添加类似如下代码:
<script language=javascript>
if (document.domain =='')
this.location = "" + this.location.pathname + this.location.search;
</script>
方法二:(推荐)
用server.Transfer("")来实现一个空间多个站的方法
先将所有的域名绑定到您的虚拟主机上,然后将虚拟主机根目录中的index.asp(首页文件)里加入下列代码就可以了:ASP/Visual Basic代码
<%
sn=lcase(Request.ServerVariables("SERVER_NAME")) '用于获取用户是通过哪个域名访问的,并转换成小写
if sn="" or sn="abc.net" then server.Transfer("default1.asp")
if sn="" or sn="def.net" then server.Transfer("index.html")
%>
效果:如果输入的域名是或abc.net的话,就访问default1.asp页面,如果是用def.net或的话就调用index.html文件。
网上还有一些教程是用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代码
<%if Request.ServerVariables("SERVER_NAME")=" " then
response.redirect "a/index.asp"
elseif Request.ServerVariables("SERVER_NAME")=" " then
response.redirect "b/index.asp"
elseif Request.ServerVariables("SERVER_NAME")=" " then
response.redirect "c/index.asp"
else
response.redirect "aaa/index.asp"
end if%>
代码作用说明:
如果用户访问 程序跳转至 空间目录下 a/index.asp
如果用户访问 程序跳转至 空间目录下 b/index.asp
如果用户访问 程序跳转至 空间目录下 c/index.asp
如果用户访问 没有指定的 程序跳转至 空间目录下 aaa/index.asp
怎么样,简单吧。
elseif Request.ServerVariables("SERVER_NAME")=" " 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']=="";){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=">
<?}else if($_SERVER['HTTP_HOST']=="mycalf.com"){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=">
<?}else if($_SERVER['HTTP_HOST']=="";){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=">
<?}else{?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=">
<?}?>
4、完成
这里要说明的一点是,有的时候域名是用大写的,那么就需要对$_SERVER['HTTP_HOST']这个变量进行处理,来让他把所有的字符转换成小写。
代码如下:
<?
$querystring = preg_replace(array("/\(\)/","/_/"),array("","-"),$_SERVER["QUERY_STRING]);
$I = strtolower(trim($_SERVER['HTTP_HOST']));
?>
如果是这样写,就需要把上面的<?if($_SERVER['HTTP_HOST']=="";){?>这句变为<?if($I=="";){?>,这样就可以在输入网址是大写的时候,也可以正常访问了。
这个方法也有一个不足点,就是需要在域名后面跟一个目录名。但是如果你不怕乱的话,也可以把两个网站都放到根目录下。但是推荐是每个网站一个目录。现在许多空间商,都支持5个以内的域名的解析。这样就可以买一个空间,拥有5个网站了。
这个办法的优势也是有的,他每个域名都是可以访问其他网站的,比如输 与访问 域名得到的效果是一样的。
其实空间麻烦的是数据库问题,不过数据库也是可以多个网站共享一个数据库的,只要不让表名一样就可以了。访问起来道理差不多。OK。
(二)、PHP 跳转代码实现一个网站空间绑定多个域名,建立多个网站
先建立一个默认主页index.php,然后把A站放在A文件夹下,B站放在B文件夹下,C站放在C文件夹下,index.php网页文件如下
<?php
switch ($_SERVER["HTTP_HOST"])
{
case "":
header("location:a/index.php");
break;
case "":
header("location:b/index.php");
break;
case "":
header("location:cboaer/index.php");
break;
}
?>
如果访问 程序跳转至 空间目录下 a/index.php
如果访问 程序跳转至 空间目录下 b/index.php
如果访问 程序跳转至 空间目录下 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">
setInterval("window.location.href=window.location.href;",5000);
</script>
window.location.Reload()应该是刷新.(如果有数据提交的话,会提示是否提交的(是和否选项))
window.location.href=window.location.href;
最好不要用location.reload(),而用 location=location比较好,还有在模式窗口(showModalDialog和 showModelessDialog)前者不能用。
X秒自动跳转
header("refresh:3;url=");
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空间根目录,把改成你的域名,后面b的改成外链地址就可以了
把下面的存为goto.php
<? $url=$_GET["url"];header("Location:".$url);?>
更换永久链接
如链接是:mcooo.com_a.com
在头部加上以下代码让他自动跳转到a.com正确的链接地址上,
<?php
if(strripos($_SERVER['REQUEST_URI'],"_"))
{
$url="".substr($_SERVER['REQUEST_URI'],strripos($_SERVER['REQUEST_URI'],"_")+1);
header('Location: '.$url);
}
?>
phpstudy怎么绑定目录实现域名访问找到安装目录,总共也没有几个文件夹,在里面找到Apache的文件夹,conf,extra,里面找到httpd-vhosts.conf文件
在里面输入
NameVirtualHost *:80
<VirtualHost *:80>#这里是端口
ServerName 这里是域名
DocumentRoot "F:/project"#这里是文件夹目录
DirectoryIndex index.php
<Directory "F:/project">#这里同上,下面是访问权限
Options Indexes
Order Deny,Allow
Allow from All
</Directory>
</VirtualHost>
在这里配置好站点后,再运行里面输入drivers,打开etc文件夹,里面的host文件末尾加上你的ip地址和域名就行了
主站用PHP,子站使用主站域名子目录访问,用JSP ,怎么实现?可以实现的(注:我用的是独立的服务器,如果是虚拟主机,应该就不行了)。
IIS+Tomcat
我们社团就这样,可以兼容 ASP、PHP、Java
不过配置起来异常繁杂!!!
我是花了两天时间去看教程、配置的(主要因为服务器上有很多以前的网站,大多数时间是去分析这些网站的情况)
具体怎么做我就不说了,网上有很多资料。
你搜一下:IIS+Tomcat 、 IIS+PHP 就有很多啦
算了,我还是简单介绍一下吧。
IIS是80端口,IIS+PHP这个不难,不过要说的是PHP5.3以后就不支持通过isapi来配置了,建议采用PHP5.2版本的;
Tomcat占用8080端口,然后具体怎么做你还是百度吧。
问php根据域名访问不同跳转到不同子目录的方法<?php
//key-value 路由表
$domain_route = array(
'a.com' => 'a/index.html',
'' => 'a/index.html', //处理www
'b.com' => 'b/index.html',
);
//获取当前访问域名做为:key
$domain = $_SERVER['HTTP_HOST'];
//通过key-value表取出目录地址
$target_url = $domain_route[$domain];
//能过header跳转至目录地址,注意,使用header跳转需要把此段代码放至你程序代码的开始处理,执行此代码代码前,不能有任何输出内容
header("location:{$target_url}");
关于php域名共用目录的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php域名共用目录 php配置域名的详细内容...