• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~! QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

htaccess 一个主机多个独立网站

WEB服务 奇跡の海 1年前 (2017-04-21) 88次浏览 已收录 0个评论 扫描二维码

htaccess 一个主机多个独立网站

htaccess 域名目录分配

.htacces 真的很强大,我们使用.htaccess写入特定规则,就可以一个空间放多个网站,让不同域名进入绑定不同的文件夹,以下范例:

比如我们要根目录中实现以下的域名绑定子目录结构:

|—-.htaccess文件

|—-blog 目录(绑定域名timle.cn/www.timle.cn)

|——–.htaccess文件

|—-aaa 目录(绑定域名aaa.com)

|——–.htaccess文件

那么需要在网站根目录的.htaccess文件中添加以下内容:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?timle\.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ blog/$1
RewriteRule ^(/)?$ blog/index.php [L]

这样我们就已经把 www.timle.cn 这个域名绑定到了 blog 这个子目录上面,相当于 blog 就是一个独立域名主机服务器。aaa.com 同理。

但是如果只到这里,你会发现,当你通过 aaa.com/blog/的方式也可以访问 www.timle.cn 里面的内容,这当然是我们不想看到的。也不利于 seo。怎么样来防止其他域名访问 www.timle.cn 中的内容呢?接下来看下面

htaccess 禁止域名互相访问

blog 目录中的.htaccess文件中添加以下内容:

RewriteEngine On
# 禁止通过非本网站域名访问
RewriteCond %{HTTP_HOST} !^(www.)?timle.cn$ [NC]
RewriteRule ^.*$ [L,r=404]

通过以上两个步骤,我们已经成功的实现了域名 timle.cn 绑定到 blog 子目录中,aaa.com 同理,并且域名与域名间相互独立访问。

如果绑定多个域名到子目录,那么规则以此类推以上内容后重复即可!

亲自测试,正常可用!需要子目录绑定的空间推荐此办法!

htaccess 文件代码解释

  • 【RewriteEngine On】
    表示重写引擎开,关闭 off,作用就是方便的开启或关闭以下的语句,这样就不需要一条一条的注释语句了。
  • 【RewriteCond %{HTTP_HOST} ^(www\.)?timle\.cn$ [NC]】
    表示重写条件,前面%{HTTP_HOST}表示当前访问的网址,只是指前缀部分,格式是 www.timle.cn 不包括“http://”和“/”,^表 示字符串开始,$表示字符串结尾,\.表示转义的. ,如果不转义也行,推荐转义,防止有些服务器不支持,?表示前面括号 www\.出现 0 次或 1 次,这句规则的意思就是如果访问的网址是 timle.cn 或者 http://www.timle.cn 就执行以下的语句,不符合就跳过。还有,不能保证每个人输入的网址都是小写的,如果输入大写的呢,linux 系统是区分大小写的,所以应该在 RewriteCond 后添加[NC]忽略大小写的。
  • 【RewriteCond %{REQUEST_URI} !^/blog/】
    也是重写条件,%{REQUEST_URI}表示访问的相对地址,就是相对根目录的地址,就是域名/后面的成分,格式上包括最前面的“/”,!表示非,这句语句表示访问的地址不以/blog/开头,只是开头^,没有结尾$
  • 【RewriteCond %{REQUEST_FILENAME} !-f】
    【RewriteCond %{REQUEST_FILENAME} !-d】
    这两句语句的意思是请求的文件或路径是不存在的,如果文件或路径存在将返回已经存在的文件或路径
  • 【RewriteRule ^(.*)$ blog/$1】
    表示重写规则,最重要的部分,意思是当上面的 RewriteCond 条件都满足的时候,将会执行此重写规则,^(.*)$是一个正则表达的 匹配,匹配的是当前请求的 URL,^(.*)$意思是匹配当前 URL 任意字符,.表示任意单个字符,*表示匹配 0 次或 N 次(N>0),后面 /blog/$1 是重写成分,意思是将前面匹配的字符重写成/blog/$1,这个$1 表示反向匹配,引用的是前面第一个圆括号的成分,即^(.*)$中 的.* 。

版权声明:本站所有文章和资源使用BY-NC-SA协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->htaccess 一个主机多个独立网站!在下边可以分享本文哦!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址