设置默认目录

<virtualhost *:80>
documentroot 网站目录
servername www.cisco.com
设置主目录
</virtualhost>
<virtualhost *:80>
documentroot /data/www
servername www.bt.com
serveralias www.btt.com
日志的分类割接
customlog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/test_access_%Y%m%d.log 86400" combined env=!p_w_picpath-request
指定日志不记录文件的类型  以防止日志数据库记录不必要的东西
setenvif request_uri ".*\.gif$" p_w_picpath-request
setenvif request_uri ".*\.jpg$" p_w_picpath-request
setenvif request_uri ".*\.swf$" p_w_picpath-request
setenvif request_uri ".*\.js$" p_w_picpath-request
setenvif request_uri ".*\.css$" p_w_picpath-request
setenvif request_uri ".*\.png$" p_w_picpath-request
setenvif request_uri ".*\.bmp$" p_w_picpath-request
域名跳转
<ifmodule mod_rewrite.c>
rewriteengine on
rewritecond %{http_host} ^www.btt.com$
rewirterule ^/(.*)$ http://www.bt.com/$1 [r=301,l]
通过user-agent来现在某一些不需要的爬虫浏览器访问
rewritecond %{http_user_agent} ".*curl.*" [nc,or] 不区分大小写
rewritecond %{http_user_agent} ".*chrome.*"
rewriterule .* - [F] (rewritecond %{request_uri}!^/404*     rewriterule .* /404.html)
通过对目录下的多个东西进行访问限制
rewritecond %{request_uri} ".*/mmm/.*" [nc]
rewriterule .* - [F]
</ifmodule>
用于静态缓存的时间
<ifmodule mod_expires.c>
expiresactive on
expiresbytype p_w_picpath/gif "access plus 1 days"
expiresbytype p_w_picpath/jpeg "access plus 1 days"
expiresbytype p_w_picpath/png "access plus 1 days"
expiresbytype text/css "now plus 2 days"
expiresbytype application/x-javascript "now plus 2 days"
expiresbytype application/x-shock-wave "now plus 2 days"
expiresdefault "now plus 0 min"
</ifmodule>
防止图片盗用连接
setenvifnocase referer "^http://.*\btt\.com" local_ref
setenvifnocase referer ".*\.bt\.com" local_ref
<filesmatch "\.(jpg|gif|jpeg|swf|doc|png|bmp|css|js|mp3|zip)">
order allow,deny
allow from env=local_ref
</filesmatch>
通过浏览器中的uri来现在对某个比较重要的页面进行访问限制
<filesmatch "(.*)admin(.*)">
order allow,deny
allow from 127.0.0.1
</filesmatch>
对某个比较重要的目录进行加密访问
<directory /data/www/mmm>
allowoverride authconfig
authtype basic
authname cisco
fileusername /tmp/p.ps
request valid-user
</directory>
目录的访问控制
</directory /data/www/mmm>
order allow,deny
allow from ip
</directory>
目录禁止php解析
<directory /data/www/mmm>
php_admin_flag engine off
<filesmatch "(.*)php">
order deny,allow
deny from all
allow 127.0.0.1
</filesmatch>
</directory>
</virtualhost>
通过apache来对rewrite防止死循环
我的一条规则
RewriteRule ^(.*) /111/$1 [R,L]
复制代码使用curl测试,没有问题,但是使用浏览器访问时,出现了无限循环。
 本来访问的是 www.111.com 结果变成了  www.111.com/111/111/111/.....
虽然在最后加了 [L] 依然不管用,可能apache还是不够智能,一直满足条件就一直去匹配,一直去跳转。最后没招了只能再加一个条件。

01.RewriteCond   %{REQUEST_URI} !^/111

02.RewriteRule ^(.*) /111/$1 [R,L]

复制代码这样就不再循环了。