.htaccess学习记录

前言:

最开始接触.htaccess文件是upload-las上,当时简单的理解为,在黑名单的情况下,特殊后缀名也被禁了,上传个图片马,排除文件包含的话,就使用.htaccess文件

最开始知道它的前提条件就是:图片马情况下不能文件包含+文件名没被改

网上复制了一个模板,开始用,

但是后来,认真的想想,我不知道FileMatch是什么,还有SetHander..

目录

前言:

htaccess文件的功能:

1,允许/阻止特定的用户或者目录的访问

2.创建条件指令,这些指令只有在条件为真时生效

3.设置默认界面

4.隐藏和拒绝文件

解决很久的疑惑:

FileMatch是什么,


htaccess文件的功能:

.htaccess和默认配置文件httpd.conf有点像郡主和君王的感觉,前者可以在自己管辖的目录下自定义,郡主的权利肯定也是君王授权的,在httpd.conf文件里面加上一条:

AllowOverride All 

.htassess就可以用了,如果你玩图片马的时候,发现连htaccess文件都用不了,就是httpd.conf文件改成了

AllowOverride None

1,允许/阻止特定的用户或者目录的访问

(存放密码的,可以包含文件的,这些都需要限制用户访问)

在htaccess文件内容:

Order Allow,Deny
Deny from All
Allow from 192.168.0.0/24

使用order命令,有deny和allow两个规则,apache会按照order决定最后使用哪一条规则(比如上面,最终执行的顺序就是,先是Allow,再是Deny,整个文件的作用就是,不允许所有访问)


2.创建条件指令,这些指令只有在条件为真时生效

<ifModule mod_php4.c>
 php_value default_charset utf-8
</ifModule>

如果php4的模块模块没有在服务器上运行,就不会将整个网站的默认字符编码设置为utf-8

3.设置默认界面

一般就是访问一个网站直接跳转到的就是熟悉的nidex.php或者其他的

4.隐藏和拒绝文件

以.ht文件开头的都是被默认配置为隐藏的,因为里面有服务器指令、密码等内容

(以下,是在htaccess文件中写入,意思为禁止访问以.ht开头的文件)

<Files ~ "^\.ht">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

~ :开启正则表达式

^\.ht :以.ht开头的

<Files ~ "^.*\.([Ll][Oo][Gg])">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

由于正则表达式区分大小写,就是用[ ]来忽略大小写;比如:[Ll] 这个就是忽略l这个英文单词

如果是想是多类文件名都被禁止访问,就是用管道符' | ',可以把它理解为 或

<Files ~ "^.*\.([Ll][Oo][Gg]|[cC][oO][mM][mM][eE][nN][tT])">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

解决很久的疑惑:

FileMatch是什么,

它就作为一个条件标签,满足后即可执行两个标签里面的

(以下是自己的一些理解,如果有错请指出)

下图是:满足后缀为.css或者.style的文件

就可以被当成php处理

SetHandler 可以强制所有匹配的文件被一个指定的处理器处理

<FilesMatch "\.(css|style)$">
 SetHandler application/x-httpd-php
</FilesMatch>

这个很类似,

下图:

满足目录是/var/www/

就可以使用.htaccess文件的功能

<Directory /var/www/>
	AllowOverride All
</Directory>

两者都可以将给定的文件扩展名映射到指定的内容类型

AddType application/x-httpd-php .php3 .php5 .phtml
SetHandler application/x-httpd-php .php3 .php5 .phtml

这个就解释了为什么能使用特殊的后缀名的原因了

以上我的问题解决了


学习文章:

https://xz.aliyun.com/t/8267

.htaccess tricks and tips.. part one: tips, tricks, hints, examples; juicy .htaccess information.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值