同一虚拟空间下用不同的域名访问不同的文件夹的方案

返回 使用微信阅读
请用微信扫一扫
JackFan

最近,有朋友问起过这个问题,再加上之前也有遇到过这类情况,今天把常用的方法总结一下,仅供参考,如有问题,欢迎交流!

首先,待我详细说明:

虚拟空间地址:192.168.0.1    域名:ihese.com

现在我想在空间(192.168.0.1)下放多个文件夹,例如:文件夹a(通过域名a.ihese.com访问)、文件夹b(通过域名b.ihese.com访问)等等。

实现这个的方法有多种,在此我就介绍2种:

第一:通过入口文件的判断来实现。

首先,将访问的域名都指向这个空间的ip地址。然后再通过入口文件(index.asp 或者  index.php)来进行判断。

ASP版(index.asp):

<%
if Request.ServerVariables("SERVER_NAME")="a.ihese.com" then
response.redirect "/a/"
else if Request.ServerVariables("SERVER_NAME")="b.ihese.com" then
response.redirect "/b/"
else if Request.ServerVariables("SERVER_NAME")="c.ihese.com" then
response.redirect "/c/"
end if
end if
end if
%>

PHP版(index.php):

<?php
switch ($_SERVER['HTTP_HOST']) {
 case 'a.ihese.com':
 include ($_SERVER['DOCUMENT_ROOT']."/a/");
 break;
 case 'b.ihese.com':
 include ($_SERVER['DOCUMENT_ROOT']."/b/");
 break;
case 'c.ihese.com':
 include ($_SERVER['DOCUMENT_ROOT']."/c/");
 break;
?>

第二:通过.htaccess文件的设置来实现。
首先,将访问的域名都指向这个空间的ip地址,同时,在空间支持的情况下先安装ISAPI_Rewrite这个组件。然后在空间的根目录新建文件:.htaccess 。 内容如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9]+).ihese.com$
RewriteCond %{REQUEST_URI} !^/[a-zA-Z0-9]/
RewriteRule ^(.*)$ /%1/$1 [L]

以上的方法均能实现。

阅读数  82397