用htaccess url重写实现多个二级域名映射同一个空间(linux虚拟主机空间,没钱买多个空间也不怕,一个主机空间开多个网站)

猜你想用这样的域名访问你的网站?

blog.uacool.com    bbs.uacool.com   

home.uacool.com    game.uacool.com

但是没钱买太多的主机空间,我们只有一个 虚拟主机空间 还有一个域名,怎么办? 相信很多人只好用顶级域名访问空间的二级目录 比如:www.uacool.com/bbs    www.uacool.com/blog    无奈般的放弃了 bbs.uacool.com    blog.uacool.com 这样的二级域名来访问空间

本文将教新手们解决这个问题。彻底的实现N多个二级域名访问同一个虚拟主机的不同目录。

现在手里只有:一个Linux虚拟主机空间 和一个顶级域名 uacool.com

虚拟主机目录结构(其中wwwroot代表web服务器根目录) :
wwwroot/
wwwroot/blog
wwwroot/bbs

目标实现:
访问blog.uacool.com 自动 访问服务器跟目录下的wwwroot/blog
访问bbs.uacool.com 自动 访问服务器根目录下的wwwroot/bbs
等等N多个二级域名访问同一个虚拟主机空间功能(非跳转)

实现方法:
用.htaccess文件来实现,把写好的.htacess文件放到服务器的根目录下,比如 wwwroot/.htaccess
.htaccess文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog.uacool.com$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1
RewriteCond %{HTTP_HOST} ^blog.uacool.com$
RewriteRule ^(/)?$ blog/index.php [L]
  
RewriteCond %{HTTP_HOST} ^it.uacool.com$
RewriteCond %{REQUEST_URI} !^/it/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /it/$1
RewriteCond %{HTTP_HOST} ^it.uacool.com$
RewriteRule ^(/)?$ it/index.php [L]

以上代码为笔记自己Linux虚拟主机服务器上的 .htaccess 文件内容,分别实现了 blog.uacool.com 以及 it.uacool.com 两个二级域名指向一个虚拟主机两个不同目录的功能。
其实工作原理就是利用 urlrewrite URL重写功能。
后续文章 将介绍 web开发人员配置本地开发目录方法,通过不同url映射到不同的开发目录其实跟本文大同小异

Logo

更多推荐