//apache 的网站配置文件 /usr/local/apache2/conf/extra/httpd-vhosts.conf

-->在编辑这个文件前需要去httpd.conf把这个文件的注释去掉

<VirtualHost *:>
DocumentRoot "/data/www"
ServerName www..com #不记录指定文件的日志 --还要加上env
SetEnvIf Request_URI ".*\.gif$" image-request
SetEnvIf Request_URI ".*\.jpg$" image-request
SetEnvIf Request_URI ".*\.png$" image-request
SetEnvIf Request_URI ".*\.bmp$" image-request
SetEnvIf Request_URI ".*\.swf$" image-request
SetEnvIf Request_URI ".*\.js$" image-request
SetEnvIf Request_URI ".*\.css$" image-request #日志设置
ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/aaa-error_%Y%m%d.log 86400"
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/aaa-access_%Y%m%d.log 86400"combined env=!image-request #301跳转
<IfModule mod_rewrite.c>
RewriteEngine on
#进入下列网站
RewriteCond %{HTTP_HOST} ^www.tiaozhuan.com [OR]
RewriteCond %{HTTP_HOST} ^www.test.com$
#都跳转到www..com
RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] #禁止user_agent NC为不区分大小写 OR代表二者取一 全部都取就不要OR Rule为规则-F所有访问拒绝
RewriteCond %(HTTP_USER_AGENT} ^Mozilla/.* [NC]
RewriteCond %(HTTP_USER_AGENT} ^.*chrome* [NC]
RewriteRule .* - [F] #限制某一个目录不让用户访问,也可利用deny和allow进行限制
RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]
RewriteRule .* - [F]
</IfModule> #静态缓存
#.mod_expires.c
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hours"
ExpiresByType application/x-javacript "now plus 2 hours"
ExpiresByType application/javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 2 hours"
</IfModule> #访问控制
<Directory /data/www/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory> #针对请求的URI限制
#<filesmatch "(.*)admin(.*)">
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
# </filesmatch> #全部PASS
#<Directory>
#Order deny,allow #全部NOT PASS
#<Directory>
#Order allow,deny #针对网站的用户上传的文件进行限制php解析
<Directory /data/www/data>
php_admin_flag engine off
<filesmatch "(.*)php">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</filesmatch>
</Directory> #防盗链
SetEnvIfNoCase Referer "^htt://.*\baidu\.com" local_ref
SetEnvIfNoCase Referer "^htt://.*\sohu\.com" local_ref
SetEnvIfNoCase Referer "^$"" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
</VirtualHost> #2.mod_headers
#<IfModule mod_headers.c>
#htm,html,txt类的文件缓存 存放一个小时
# <filematch "\.(htmlhtm|txt)$">
#header set cache-control "max-age=3600"
# </filematch>

写配置文件会遇到的错误 :

1.

/usr/local/apache2/bin/apachectl -t
Syntax error on line 34 of /usr/local/apache2/conf/extra/httpd-vhosts.conf:
AuthUserFile takes 1-2 arguments, text file containing user IDs and passwords

1.因为 多出了 AllowOverride AuthConfig

2. 34行有中文注释,将其删除即可

==================我是分割线。===============

配置后的测试 :

//用户认证的测试 

对某一个网页进行 用户认证 的设置 

/data/.htpasswd 是存放网页用户名和密码的文件 

需要用htpasswd -c 选项进行首次创建文件

[root@localhost ~]# htpasswd -mbc .htpasswd Neo 111111

//创建用户名为Neo,密码为111111的帐户

然后 apachectl -t
apachectl graceful 然后去浏览器访问被限定的文件夹 ======================
//默认主机 --如果不配置 ,只要在电脑的hosts配置了另外的域名 也可以访问到指定的ip 添加了默认主机 就可以进行限制 只有我们配置的域名才可访问到本服务器的ip 测试:
先在 hosts 服务器的ip里 配置多一个不属于我们配置文件里的域名 如 www.aaa.com 然后在浏览器里 访问域名 www.aaa.com 可以跳转到我们的网站 然后我们配置虚拟主机 再去访问 www.aaa.com 就已经不行了 --则配置完成 =======================
//域名跳转 配置好后 用浏览器直接访问配置的域名 测试 或者用curl来进行测试 curl -x+本机ip+port +域名 -I
======================
//日志切割 对网站进行刷新
根据配置日志的路径 然后从centos看文件夹里是不是出现了日志 ======================
//不记录指定文件的日志 先对已存在的日志 进行清空 然后刷新网页 再去查看日志 是不是还存在那些指定文件的日志 =======================
//静态缓存 配置好后 到浏览器中 对某个已经配置的文件右键 或F12
查看文件的路径 然后在Linux中用curl 来访问
例如
curl -x127.0.0.: 'http://www.test.com/static/image/common/logo.png' -I 从cache-control这一栏就可以知道 ,是否已经配置好 是否与我们配置的时间一致 ======================
//防盗链 配置好后, 再去以白名单 和黑名单的身份去访问被限制的文件类型 看是否白名单显示 黑名单则不可以显示

apache 各种配置的更多相关文章

  1. 【只需3步】源码手动安装Apache以及配置(亲测可行)

    作者小波/QQ463431476欢迎转载! redhat6采用centos yum源. 第一步下载apache依赖的软件包并安装 安装 apr下载地址:http://apr.apache.org/do ...

  2. centos apache svn配置

    单独安装svn服务: 安装svn软件 yum install subversion 创建根目录 mkdir -p /var/www/svn 创建版本库repos svnadmin create /va ...

  3. Apache+PHP 配置随笔

    准备安装包 1:安装VC++ 2012(vcredist_x64,我这边服务器为64位) 2:Apache安装包,php安装包 安装后配置工作 1:安装Apache服务,配置环境变量 httpd -k ...

  4. Apache安装配置步骤

    注释:这里以Linux 红帽商业版为例~~~~~~~纯手打啊 Apache安装配置步骤 准备:关闭其他虚拟设备 #/etc/init.d/libvirtd stop #/etc/init.d/xend ...

  5. Apache服务器安装配置

    Apache服务器安装 1.Apache服务器安装      在Linux系统下,apache服务器的安装方式比较灵活,可以使用二进制包安装,比如:rpm包.deb包.已编译好的包.也可以简单的使用y ...

  6. Apache安全配置方案

    Apache安全配置方案 from:http://drops.wooyun.org/%e8%bf%90%e7%bb%b4%e5%ae%89%e5%85%a8/2727 apache的一些配置主要是通过 ...

  7. apache+php配置中遇到的问题

    在安装apache+php配置中遇到的问题: LoadModule php5_module "D:/PHP/php5apache2_4.dll"PHPIniDir "D: ...

  8. apache性能配置优化

    最近在进行apache性能优化设置.在修改apache配置文件之前需要备份原有的配置文件夹conf,这是网站架设的好习惯.以下的apache配置调优均是在red had的环境下进行的. httpd相关 ...

  9. Apache的配置

    Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改. 主站点的配置(基本配置) (1) 基本配置: ServerRoot "/mnt/s ...

  10. Apache https 配置指南

    Windows Apache HTTPS配置创建下面3个目录: C:\Program Files\Apache Group\Apache2\conf\sslC:\Program Files\Apach ...

随机推荐

  1. 【JavaScript】获取项目路径地址

    在jsp页面顶上面定义 <% String path = request.getContextPath(); String basePath = request.getScheme() + &q ...

  2. C++解析(28):异常处理

    0.目录 1.C语言异常处理 2.C++中的异常处理 3.小结 1.C语言异常处理 异常的概念: 程序在运行过程中可能产生异常 异常(Exception)与 Bug 的区别 异常是程序运行时可预料的执 ...

  3. 51nod 1089最长回文子串V2 (manacher)

    经典题 manacher是一种很神奇的算法, 算是动态规划的一种,不过利用的信息非常有效 #include <iostream> #include <cstdio> #incl ...

  4. Argus UVALive - 3135(优先队列 水题一道)

    有一系列的事件,它每Period秒钟就会产生编号为qNum的事件,你的任务是模拟出前k个事件,如果多个事件同时发生,先处理qNum小的事件 今天再看看数据结构.. #include <iostr ...

  5. bzoj2969 矩形粉刷 概率期望

    此题在bzoj是权限题,,,所以放另一个oj的链接 题解: 因为期望线性可加,所以可以对每个方格单独考虑贡献.每个方格的贡献就为至少被粉刷过一次的概率×1(每个格子的最大贡献就是1...)每个方格至少 ...

  6. Last Position of Target

    For a given sorted array (ascending order) and a target number, find the first index of this number ...

  7. SQL中的替换函数replace()使用

    语法REPLACE ( string_expression , string_pattern , string_replacement ) 参数string_expression 要搜索的字符串表达式 ...

  8. lnmp集成环境Access Denied的问题

    在你的php.ini配置文件中,设置cgi.fix_pathinfo=1

  9. C语言 ------ #undef 的使用

    #undef 是在后面取消以前定义的宏定义 该指令的形式为 #undef 标识符 其中,标识符是一个宏名称.如果标识符当前没有被定义成一个宏名称,那么就会忽略该指令. 一旦定义预处理器标识符,它将保持 ...

  10. OpenCV---其他形态学操作

    一:顶帽实现(原图像与开操作图像的差值) import cv2 as cv import numpy as np def top_hat_demo(image): gray = cv.cvtColor ...