Apache虚拟云主机利用.htaccess伪静态(URL重写)建立多个站点的方法

cbj 网络教程 2021-06-18 21:56 838

我们一般购买的优惠主机套餐的虚拟云主机最多只能建一个网站,但可以绑定多个域名。那如果我们想建2个或3个网站要怎么办呢?难道需要再另外购买一台主机或者买更高的套餐呢?

其实我们可以通过.htaccess伪静态文件来定义相关域名绑定对应的网站目录,这样就可以实现一台主机上建多个站点了。

 

另外,大部分虚拟主机都是可以自定义.htaccess文件的,有时虚拟主机看不到的话我们只需要通过FTP连接,勾选 "强制显示隐藏文件" 即可在网站根目录中看到了。

Apache虚拟云主机利用.htaccess伪静态(URL重写)建立多个站点的方法  第1张

PHP程序Apache主机一般大部分都支持.htaccess伪静态,即可以实现绑定域名到子目录、一个空间多个网站。


默认Apache主机内容模版(存档):

RewriteEngine on
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

域名跳转方法

应用举例:绑定www.cbjv.cn到htaccess目录

根目录下.htaccess内容修改:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# 绑定www.98net.net到子目录blog
RewriteCond %{HTTP_HOST} ^www.cbjv.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule ^(.*)$ blog/$1 [L,QSA]
#可以绑定多个,只需重复上三行代码并更改一下域名、目录名就行了
</IfModule>

或者修改如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.cbjv.cn [NC]
RewriteRule ^(.*)$ http://www.cbjv.cn/blog/$1 [L,R=301]
</IfModule>


绑定文件夹目录下的.htaccess内容

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#只许绑定的域名访问,其他域名301跳转
RewriteCond %{HTTP_HOST} !^www.cbjv.cn$ [NC]
RewriteRule (.*) http://www.cbjv.cn/$1 [L,R=301]
#对绑定目录下htaccess目录的处理
RewriteCond %{REQUEST_URI} ^\/moban\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)
#htaccess.800m.net/htaccess实际上访问www.cbjv.cn/moban/htaccess
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1 [L,QSA]
</IfModule>


二级域名绑定/映射到子目录方法:

示例:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.98net.net$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} ^888.cbjv.cn$ #服务器名
RewriteCond %{REQUEST_URI} !^/down/  #需要绑定的2级目录
RewriteCond %{REQUEST_FILENAME} !-f  #排除请求的参数不是文件
RewriteCond %{REQUEST_FILENAME} !-d  #排除请求的参数不是目录
RewriteRule ^(.*)$ /down/$1  #转发规则
 #这个目的是用来直接跳转的
RewriteCond %{HTTP_HOST} ^888.cbjv.cn$
RewriteRule ^(/)?index.php$ down/index.php [L]


我使用的模版:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# 绑定a.abc.com 到 new子目录
RewriteCond %{HTTP_HOST} ^a.abc.com$ [NC]
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule ^(.*)$ new/$1 [L,QSA]
</IfModule>


本文链接:http://www.cbjv.cn/wljc/828.html 转载请注明来源!

分享到:
相关推荐

评论列表
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
关闭

用微信“扫一扫”