我们一般购买的优惠主机套餐的虚拟云主机最多只能建一个网站,但可以绑定多个域名。那如果我们想建2个或3个网站要怎么办呢?难道需要再另外购买一台主机或者买更高的套餐呢?
其实我们可以通过.htaccess伪静态文件来定义相关域名绑定对应的网站目录,这样就可以实现一台主机上建多个站点了。
另外,大部分虚拟主机都是可以自定义.htaccess文件的,有时虚拟主机看不到的话我们只需要通过FTP连接,勾选 "强制显示隐藏文件" 即可在网站根目录中看到了。
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 转载请注明来源!
版权声明:本站文章均为原创或转载,版权归原作者所有,欢迎分享本文,转载请保留出处!