htaccess学习笔记

来源:互联网 发布:数控火焰切割手工编程 编辑:程序博客网 时间:2024/05/20 04:15

.htaccess是服务器架设中的重要武器

今天由于在thinkphp框架里见到了.htaccess文件。我就深入学习了下。感觉提别好用。

1..htaccess是一个古怪的文件名(它事实上没有文件名,只有一个由8个字母组成的扩展名),而在一些系统(如windows 3.1)中无法接受这样的文件名。在大多数的操作系统中,你需要做的是将文档保存成名为:".htaccess",再不行就随笔设置一个文件名,上传后用FTP软件进行改名

2.ErrorDocument errornumber /error.html自定义错误页面,比如404未找到

401 - Authorization Required 需要验证
400 - Bad request 错误请求
403 - Forbidden 禁止
500 - Internal Server Error 内部服务器错误
404 - Wrong page 找不到页面

但是注意/error.html为服务器www服务根目录,如果.htaccess在子目录,也是这样

3.Options -Indexes禁止显示目录列表,可省去设置一堆index.html

4.deny from 0.0.0.0 和allow from 0.0.0.0可以为all.

 Order deny,allow

deny from all

allow from 127.0.0.1

5.DirectoryIndex index.php3 index.php主页设置

6.Redirect 旧文件或旧目录 新文件或新目录(可为站外)  (这里的文件地址设置也是从根目录开始算起)

7.RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www.)?thinksoso.com/[nc] 
RewriteRule .*.(gif|jpg|png)$http://thinksoso.com/kong.png[nc]        最后一句是给一个别的图片

8.路由重写功能

可在httpd.conf和网站目录下.htaccess里用,要先将RewriteEngine on加上

RewriteCond//规则生效条件

RewriteRule//条件生效的结果

可多个cond。多条件用于url重定向等%{HTTP_HOST},%{QUEST_URI},%{QUEST_FILENAME}.

【说明】定义重写发生的条件
【语法】RewriteCond TestString CondPattern [flags]
【说明】定义重写的规则
【语法】RewriteRule CondPattern rewritePattern [flags]
TestString是要匹配的对象变量,CondPattern是匹配条 件,rewritePattern 是重写规则,flags是扩展规则标记,[R]作为扩展规则标记flags,意思是强制重定向。$0全匹配,第一个小括号
$1

【RewriteCond %{HTTP_HOST} ^www.zzz.com】

分析:%{HTTP_HOST}作为 TestString对象,代表的是请求主域名地址。【^www.zzz.com】,作为CondPattern 是针对TestString对象进行的条件匹配,这里是表示以www.zzz.com开头的意思。

以【RewriteRule (.*)\.php$ http://www.zzz.com/$1/ [R]】来分析:

【(.*)\.php$】作为CondPattern,是针对以上三个条件匹配之后的URL进行条件筛选,表示任何一.php结尾的 URL。【http://www.zzz.com/$1/】作为rewritePattern,意思是将条件CondPattern所匹配的URL进行重组,这里意思是将CondPattern中第一个括号匹配的部分放在http://www.zzz.com/之后组合成新的URL。【[R]】作为扩展规则标记flags,意思是强制重定向。

1) R[=code](force redirect) 强制外部重定向 
强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。 
2) F(force URL to be forbidden)禁用URL,返回403HTTP状态码。 
3) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。 
4) P(force proxy) 强制使用代理转发。 
5) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。 
6) N(next round) 重新从第一条规则开始运行重写过程。 
7) C(chained with next rule) 与下一条规则关联 

“.” ——————- 换行符以外的所有字符
“\w” —————- 匹配字母或数字或下划线或汉字
“\s” —————– 匹配任意的空白符
“\d” —————– 匹配数字
“\b” —————– 匹配单词的开始或结束
“^” —————— 匹配字符串的开始
“$” —————— 匹配字符串的结束
“*” —————— 重复零次或更多次
“+” —————— 重复一次或更多次
“?” ——————- 重复零次或一次
“{n}” —————- 重复n次
“{n,}” ————— 重复n次或更多次
“{n,m}” ————- 重复n到m次
“[0-9]” ————– 匹配单个数字








0 0
原创粉丝点击