
htaccess文件是Apache服务器中的一个配置文件,负责相关目录下的网页配置 /www/html下的.htaccess文件与主配置文件中段中内容完全等效 .htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录 且子目录中的指令会覆盖父目录或者主配置文件中的指令
RewriteEngine 用于开启或停用rewrite功能。rewrite configurations 不会自动继承
RewriteBase用于设定重写的基准URL RewriteRule可以用于目录级的配置文件中 (.htaccess)并在局部范围内起作用 即规则实际处理的只是剥离了本地路径前缀的一部分 处理结束后,这个路径会被自动地附着回去 默认值是”RewriteBase physical-directory-path”
RewriteCond指令定义了一个规则的条件,即,在一个RewriteRule指令之前有一个或多个RewriteCond指令 条件之后的重写规则仅在当前URI与pattern匹配并且符合这些条件的时候才会起作用 TestString是一个纯文本的字符串 但是还可以包含下列可扩展的成分:
htaccess+RewriteRule反向引用: 引用方法是 $N (0 <= N <= 9) 引用当前(带有若干RewriteCond指令的)RewriteRule中的与pattern匹配的分组成分(圆括号!) +RewriteCond反向引用: 引用方法是 %N (1 <= N <= 9) 引用当前若干RewriteCond条件中最后符合的条件中的分组成分(圆括号!) +RewriteMap 扩展: 引用方法是 ${mapname:key|default} + 服务器变量: 引用方法是 %{ NAME_OF_VARIABLE } CondPattern是条件参数 Flags标识是是第三个参数,可选OR、AND、NC,默认为AND
其中的Pattern就是参数,一般为一些文件的扩展名 Substitution是用来替换前面用的,这儿的Flags 常用的R表示 redirect(强制重定向),F表示forbidden(禁止访问),L表示last(最后) 通常当你希望停止重写操作而立即重定向时,可用它
htaccessRewriteBase / RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/.*$ [NC] RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
htaccessOptions All -Indexes
htaccessRedirect 301 http://www.yoursite.com/article.html http://www.yoursite.com/archives/article
htaccessErrorDocument 404 /404.html
假如你需要为不同的目录设置不同的默认页面,你可以很容易的通过 .htaccess 实现:
htaccessDirectoryIndex about.html
htaccess<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} spamteam.com [NC,OR] RewriteCond %{HTTP_REFERER} trollteam.com [NC,OR] RewriteRule .* – [F] </ifModule>
htaccessphp_value upload_max_filesize 20M php_value post_max_size 20M php_value max_execution_time 200 php_value max_input_time 200
htaccessAddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript
htaccess<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”> Header set Cache-Control “max-age=2592000〃 </FilesMatch>
htaccess<IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] </IfModule>
htaccessRedirect 301 /old.html http://yoursite.com/new.html
或者是
htaccessRewriteRule /old.html http://yoursite.com/new.html [R=301,L]
如果想隐式跳转
htaccessRewriteRule /old.html http://yoursite.com/new.html [L]
htaccessRewriteRule ^/?([a-z/]+)\.html$ $1.php [L]
htaccessRewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]
htaccessRewriteRule ^/?([a-z]+)$ $1.php [L]
禁止所有IP,除了指定的
htaccessorder deny,allow deny from all
如果想允许IP段,如123.123.123.0 ~ 123.123.123.255,则
htaccessallow from 123.123.123. allow from 123.123.123.123 ErrorDocument 403 /page.html <Files page.html> allow from all </Files>
如果想禁止特定IP
htaccessdeny from 123.123.123.123
htaccessAddType video/x-flv .flv
如果设置类型为 application/octet-stream 将提示下载
htaccessAddType application/octet-stream .pdf


本文作者:AsZero
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!