最近,有朋友问起过这个问题,再加上之前也有遇到过这类情况,今天把常用的方法总结一下,仅供参考,如有问题,欢迎交流!
首先,待我详细说明:
虚拟空间地址: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