.htaccess文件(或“分布式配置文件”)提供了一种更改目录配置的方法,即在特定的文档目录中放置一个文件,包含一个或多个指令以应用于该目录和所有子目录。作为用户,可以使用的命令是有限的。管理员可以通过Apache的AllowOverride指令来设置它。Unix、Linux系统或任何版本的ApacheWeb服务器都支持.htaccess,但某些托管服务提供商可能不允许您自定义自己的.htaccess文件。启用.htaccess需要修改httpd.conf,启用AllowOverride,使用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的文件名,可以使用AccessFileName指令来更改它。例如,如果需要使用.config,可以在服务器配置文件中配置如下:AccessFileName.config。一般来说,.htaccess可以帮助我们实现:文件夹密码保护、用户自动重定向、自定义错误页面、更改文件扩展名、阻止特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表等一些功能就像使用其他文件作为索引文件一样。编写规则DirectoryIndexzxg.html#更改默认文件RewriteEngineOn#在运行时打开或关闭重写引擎,设置位置:服务器配置,虚拟主机,directory.htaccess'-d'(是一个目录[directory])将TestString至于路径名并测试它是否存在并且是目录'-f'(是常规文件[file])将TestString视为路径名并测试它是否存在并且是常规文件'-l'(是符号链接[link])将TestString视为路径名并测试其存在,并且是符号链接重定向|R[=HttpCode](强制重定向重定向)(使新URL成为URI)前缀替换可以强制执行外部重定向。如果未指定代码,则会生成HTTP响应代码302(临时移动)。注意:使用此标签时,必须确保替换字段是有效的URLlast|L(rewritelastofthelastUrlrule)立即停止重写操作并且不应用其他重写规则。该标志防止当前重写的URL被其后继规则'forbidden|F'(ForbiddenURLisforbidden)重写强制禁止当前URL,即立即返回一个HTTP响应码403(Disallowed)'nocase|NC'(ignorecasenocase)使Pattern忽略大小写,即当Pattern匹配当前URL时,'A-Z'和'a-z'没有区别。综合示例#注意,#只能放在句首,后面句末的#practicalapplication要删掉#更改默认文件DirectoryIndexzxg.html#Pseudo-staticRewriteEngineOn#Openor运行时关闭重写引擎,设置位置:Serverconfiguration,virtualhost,directory.htaccessReWriteRule^(\d+)_(\d+)\.htmlnews.php?cid=$1&aid=$2[NC,R=301,L]#301Direction,caseinsensitive#Jumptoa404.htmlRewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dReWriteRule.*404.html[L]#Removeindex.phpRewriteCond$1!^(index\.php|images|robots\.txt)#除index.php、images和robots.txt之外的任何HTTP请求都指向index.php。RewriteRule^(.*)$/index.php/$1[L]#防盗链RewriteCond%{HTTP_REFERER}!^$#如果源地址不为空RewriteCond%{HTTP_REFERER}!^http://web1.com#IfNotstartwithhttp://web1.comRewriteCond%{REQUEST_FILENAME}.*\.(jpg|jpeg|gif|png)[NC]#如果访问的是图片ReWriteRule.*no.png[L]#直接转到no.png1.注意它的顺序是从上到下。如果满足某个条件,则不会遵循以下条件;所以在写伪静态的时候,一定要考虑这个顺序;2.#评论号只能放在句中,不能放在句末;3、无需重启Apache,立即生效;
