268香港空间

当前位置:首页 » 资料文档 » 正文

利用.htaccess绑定子域名到子目录及语法说明

74人参与 来自于 : 资源分享网    2019年06月09日   分类 : 资料文档  点这评论

首先在本地建个txt文件,复制下面的代码修改替换你要绑的域名和目录,并传到网站主目录下再改成为.htaccess。 下面是以 dh.268zy.com绑定到子目录dh为例的.htaccess代码

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

如果你以完成上面的步骤 你的子域名应该可以访问了 但你会发现在浏览器上访问 主域名+绑定的域名目录 也可以访问,可这并不是我们想要的 接下来我们完成最后一步;在每一个绑定的目录中 如dh目录中 也增加一个 .htaccess 文件


.htaccess代码如下

<IfModule mod_rewrite.c> 
RewriteEngine On
RewriteBase /
#只许绑定的域名访问
RewriteCond %{HTTP_HOST} !^dh\.3366dh\.vip$ [NC]
RewriteRule (.*) http://dh.3366dh.vip/$1 [L,R=301]
#对绑定目录下与 同名的目录的处理
RewriteCond %{REQUEST_URI} ^\/dh\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA] 
</IfModule>

.htaccess语法中RewriteCond和RewriteRule意义:

一、RewriteCond语法:

RewriteCond TestString CondPattern [Flags]

其中的TestString是指一个文本格式的条件 这是一个map(键值对)格式的数据类型。

CondPattern是条件参数

Flags标识是是第三个参数,可以用来紧跟下一个条件,这儿用OR表示或者,如果没有[Flags],则用隐含的AND,表示并且。其它的还可以NC等等,表示忽略大小写。

RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是RewriteCond最原始、基础的功能。


看个例子:


RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5.0.*

RewriteRule index.php index.m.php

RewriteCond %{HTTP_USER_AGENT} ^Lynx.*

RewriteRule index.php index.L.php

RewriteRule index.php index.b.php

上面语句的作用是当你是用FF浏览器访问index.php这个文件的时候,会自动让你访问到index.m.php这个文件,当你是用一些移动终端访问 的 时候,会让你对index.php这个文件的访问实际访问的是index.L.php去,如果你是用其它的浏览器访问的时候,会让你跳到 index.b.php。


二、RewriteRule的语法:

RewriteRule Pattern Substitution [Flags]

其中的Pattern就是参数,一般为一些文件的扩展名,Substitution是用来替换前面用的,这儿的Flags,常用的R表示 redirect(强制重定向),F表示forbidden(禁止访问),L表示last(最后),通常当你希望停止重写操作而立即重定向时,可用它。


.htaccess中用到的正则

元字符^(和数字6在同一个键位上的符号)和$都匹配一个位置,这和\b有点类似。

^匹配你要用来查找的字符串的开头

$匹配结尾。

比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$。

通过.htaccess来防止网站的图片、压缩文件、或视频等非Html文件被盗链的方法相当简单,通过在该文件中加入几句命令即可保护我们宝贵的带宽。

用户盗链我们的资源会返回403(没有权限)错误


再看个防盗链的例子:


RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\.)?abc.com/.*$ [NC]

RewriteRule \.(gif|jpg|js|css)$ - [F]


[NC]表示不区分大小写

“RewriteEngine On”,开启 Rewrite 规则开关;

HTTP_REFERER:表示访问我们服务器的来源站点。

上面的含义是:如果来源站点不为空且来源站点不是(http://www.abc.com或http://abc.com)[网址不区分大小写] 则所有以.gif .jpg .js .css为后缀的文件都不能被访问.当然,对方如果伪造来源这样我们就束手无策了,例如对方伪造我们的站点采集我们的资源,这是另外的事了。


盗链内容自定义

你会经常看到有的网站显示“来自百度空间”或“图片无法显示”等图片,这是防盗链的另一种设置,即返回的是一个自定义图片,配置如下:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?example.com/(.*)$ [NC]

RewriteCond %{HTTP_REFERER} !^http://(www.)?google.com/(.*)$ [NC]

RewriteRule \.(gif|jpg)$ http://www.abc.com/image.gif [R,L]


禁止访问

RewriteRule ^.* - [F,L]

这里”-”表示没有替换,F表示禁止对URL地址的存取,L表示停止处理接下来的规则

例子:

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} ^MSIE [NC,OR]

RewriteCond %{HTTP_USER_AGENT} ^Opera [NC]

RewriteRule ^.* - [F,L]


浏览器为IE和Opera的访客将被禁止访问。 

268资源分享网 , 版权所有丨本站资源仅限于学习研究,严禁从事商业或者非法活动!丨,转载请保留出处和链接!

本文链接:利用.htaccess绑定子域名到子目录及语法说明来自http://www.268zy.com/pot/488.html

本文标签:利用.htaccess绑定子域名到子目录及语法说明  

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关文章

最新文章

资源分享网
资源分享网

网站分类

热门标签

支付宝扫码领红包

网站源码 | 营销软件 | 最新电影 | 资料文档 | 网站地图

Copyright 268资源分享网

  • 陕ICP备17018001号