clh899 发表于 2017-12-24 19:39:36

Apache里的httpd-vhosts.conf详解

  首先看下面的配置:
  

<VirtualHost *:80>  ServerAdmin webmaster@dummy-host.example.com
  DocumentRoot "D:/xampp/htdocs/wherein"
  ServerName www.shop_dev.com
  ErrorLog "logs/wherein.com-error.log"
  CustomLog "logs/wherein.com-access.log" common
  <Directory "D:/xampp/htdocs/wherein">
  Options FollowSymLinks IncludesNOEXEC Indexes
  DirectoryIndex index.html index.htm index.php
  AllowOverride all
  Order Deny,Allow
  Allow from all
  Require all granted
  </Directory>
  
</VirtualHost>
  

  

  ServerAdmin指令:
  语法: ServerAdmin email-address|URL
  用来设置服务器返回给客户端的错误信息中包含的管理员邮件地址。便于用户在收到错误信息后能及时与管理员取得联系。
  ServerName指令:
  语法:ServerName FQDN [:port]
  用来设置服务器用于辨识自己的主机名和端口号。主要用于创建重定向URL。
  DocumentRoot指令:
  语法:DocumentRoot directory-path
  用来设置httpd提供服务的目录。即你所在项目入口处的文件夹。
  ErrorLog指令:
  语法: ErrorLog file-path
  来设置当服务器遇到错误时记录错误日志的文件。如果file-path不是以/开头的绝对路径,那么将会被认为是一个相对于ServerRoot的相对路径。
  CustomLog指令:
  语法: ErrorLog file-path common
  设置日志文件,并指明日志文件所用的格式(通常通过格式的名字)。
  <Directory 目录路径>...</Directory>
  为主目录或虚拟目录设置权限。
  特性:
  Options FollowSymLinks IncludesNOEXEC Indexes

命    令
说    明
Indexes
允许目录浏览  当客户仅指定要访问的目录,但没有指定要访问目录下的哪个文件,而且目录下不存在默认文档时,Apache以超文本形式返回目录中的文件和子目录列表(虚拟目录不会出现在目录列表中)

MultiViews
允许内容协商的多重视图  MultiViews其实是Apache的一个智能特性。当客户访问目录 中一个不存在的对象时,如访问“http://192.168.66.6/data/a”,则Apache会查找这个目录下所有a.*文件。由于 data目录下存在a.gif文件,因此Apache会将a.gif文件返回给客户,而不是返回出错信息

All
All包含了除MultiViews之外的所有特性,如果没有Options语句,默认为All
ExecCGI
允许在该目录下执行CGI脚本
FollowSymLinks
可以在该目录中使用符号连接
Includes
允许服务器端包含功能
IncludesNoExec
允许服务器端包含功能,但禁用执行CGI脚本  一旦定义允许目录浏览,就会将Web站点的文件夹和文件名结构暴露给黑客。目录浏览还会允许黑客浏览文件并掌握服务器配置信息,所以指定该权限往往带来安全性上的隐患。除非有充足的理由要使用目录浏览,否则应该禁用它。
  DirectoryIndex index.html index.htm index.php
  设置访问目录后进入的默认文件
  AllowOverride all
  定义位于每个目录下.htaccess(访问控制)文件中的指令类型。none为禁止使用.htaccess文件
  Order Deny,Allow
  Allow from all
  设置缺省的访问权限与Allow和Deny语句的处理顺序
  allow, deny:缺省禁止所有客户机的访问,且Allow语句在Deny语句之前被匹配。如果某条件既匹配Deny语句又匹配Allow语句,则Deny语句会起作用(因为Deny语句覆盖了Allow语句)。
  deny, allow:缺省允许所有客户机的访问,且Deny语句在Allow语句之前被匹配。如果某条件既匹配Deny语句又匹配Allow语句,则Allow语句会起作用(因为Allow语句覆盖了Deny语句)。
  eg.
  

Order deny ,allow  
Deny from baidu.com
  
Deny from 192.168.66.6
  除了来自baidu.com域和ip地址为192.168.66.6的客户机外,允许所有客户机访问
  

Order deny ,allow  
Allow from 192.168.66.6
  
Deny from 192.168.66.1
  既匹配Deny语句又匹配Allow语句,由于allow语句覆盖了deny语句,所以是允许所有客户机访问
  

Order allow ,deny  
Allow from 192.168.66.6
  
Deny from 192.168.66.1
  既匹配Deny语句又匹配Allow语句,由于deny语句覆盖了allow语句,所以是禁止所有客户机访问
  
页: [1]
查看完整版本: Apache里的httpd-vhosts.conf详解