設置默認目錄
<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仍是不夠智能,一直知足條件就一直去匹配,一直去跳轉。最後沒招了只能再加一個條件。javascript
01.RewriteCond %{REQUEST_URI} !^/111php
02.RewriteRule ^(.*) /111/$1 [R,L]
複製代碼這樣就再也不循環了。css