• Apache的访问控制


     

    目录配置段


    注释不能写在指令后面,下面这样是不行的,应当换行,但为了阅读方便我就这么写了


    Alias /dir/  "/var/www/html/admin"      #路径的别名 这样就可以在域名后面加 /dir 而实际访问的是 admin下面的文件
    <Directory /var/www/html/>
       Order Allow,Deny                              #权限的顺序是先允许 后拒绝
       Deny from 192.168.1.12                  #拒绝192.168.1.12访问
       Allow from all                                     #允许所有的访问
       Options Indexes FollowSymLink     #允许目录索引 符号链接
       AllowOverride None                          #不能被目录下的.htaccess覆盖
       # AllowOverride all                            允许被目录下的.htaccess规则覆盖 默认是允许的
    </Directory>

     

    文件配置段


    <Files "hello.html">
      Order Deny,Allow     #先拒绝 后允许
      Deny from all            #拒绝所有的访问所有目录下的hello.html文件
    </Files>

    如果文件配置段嵌套到目录配置段,就只控制那个目录下文件的访问权限

    url配置段


    <Location /admin>
       Deny from all      #拒绝所有的访问/admin这个url
    </Location>

    文件目录url都可用通配符或正则
    <Directory "/var/*/html/">
    ......
    </Directory>

     

    <FilesMatch .(gif|png)>
      Deny from all  #拒绝访问图片
    </FilesMatch>

     

     

    Apache的虚拟主机配置


    基于ip:
    <VirtualHost 192.168.142.2:80>
     ServerAdmin zhaoyp1985@163.com
     DocumentRoot "/var/www/web1"
     ServerName www.aaa.com
     ErrorLog "/home/log/error/error.log"
     CustomLog "/home/log/coustom/error.log"
    </VirtualHost>

    <VirtualHost 192.168.142.1:80>
     ServerAdmin zhaoyp1985@163.com
     DocumentRoot "/var/www/web1"
     ServerName www.bbb.com
     ErrorLog "/home/log/error/error.log"
     CustomLog "/home/log/coustom/error.log"
    </VirtualHost>


    基于域名:
    NameVirtualHost *:80
    #保留原来的localhost
    <VirtualHost *:80 >
       ServerName *
       DocumentRoot "/var/www/html"
    </VirtualHost>

     

    #虚拟主机www.aaa.com
    <VirtualHost *:80 >
     ServerAdmin zhaoyp1985@163.com
     DocumentRoot "/var/www/web1"
     ServerName www.aaa.com
     ErrorLog "/home/log/error/error.log"
     CustomLog "/home/log/coustom/error.log"
    </VirtualHost>

     

    #虚拟主机www.bbb.com
    <VirtualHost *:80 >
     ServerAdmin zhaoyp1985@163.com
     DocumentRoot "/var/www/web2"
     ServerName www.bbb.com
     ErrorLog "/home/log/error/error.log"
     CustomLog "/home/log/coustom/error.log"
    </VirtualHost>

     

    泛域名的解析

    <VirtualHost *:80>
      ServerName *.aaa.com
      VirtualDocumentRoot  /var/www/cct/home/%1
     <Directory " /var/www/cct/home/" >
      AllowOverride All
      Order Allow,Deny
      Allow from all
      </Directory>
    </VirtualHost>


    其中的%1是*.aaa.com的第一部分 见下面:

    目录名称的转换

    本模块中的所有指令都用于将字符串替换为路径名。被替换的字符串(以后称为"name")可以是服务器名(参见UseCanonicalName指令以了解决策方法)或者是"点数字"格式的虚拟主机IP地址。替换操作由printf格式修饰符控制,该修饰符有以下几种格式:

    %% 插入一个百分号(%)
    %p 插入虚拟主机的端口号
    %N.M 插入名称(或者名称的一部分)

    NM被用来指定name中的子字符串。N从name中用小数点分隔的某部分中选取,而M是从N选中的字符串中选取部分字符。M是可选的且默认为"0";小数点当且仅当M存在时才必须书写。替换操作如下:

    0 整个name
    1 第一部分
    2 第二部分
    -1 最后一部分
    -2 倒数第二部分
    2+ 从第二部分开始到最后的所有部分
    -2+ 倒数第二部分以及之前的各部分
    1+-1+ 等同于0

    如果NM大于部分的个数,则简单的用下划线来替换。

  • 相关阅读:
    WSGI应用程序示例
    UDP 网络程序-发送_接收数据
    【C语言】定义一个函数,求长方体的体积
    【C语言】输入三个正整数a,b,c,求最大值,要求定义一个计算最大值的函数max(a,b),返回a,b的值
    人工智能发展史-从图灵测试到大数据
    漫画 |《程序员十二时辰》,内容过于真实 ...
    漫画 | 外行对程序员误会有多深!
    爬虫究竟是合法还是违法的?
    【C语言】用指针作为形参完成数据的升序排列
    【C语言】数组名作函数参数,完成数据的升序排列
  • 原文地址:https://www.cnblogs.com/sweet521/p/6437990.html
Copyright © 2020-2023  润新知