• apache2 子目录forbidden问题


      安装环境的时候是用apt-get的方式直接安装的。配置文件的地址是/etc/apache2/sites-enabled/000-default。

      因而更改根目录的目录时候,便直接在<Directory >里修改了,就在根目录www里面创建了个文件夹first,在first里面的index是可以访问的,但是创建的image却一直无法访问。起初以为是apache2设置的问题,结果无论如何修改都没用,最后,看了下文件夹权限,发现others根本没有访问权限,修改这个之后,网页就能显示了。

      顺带apache2修改权限所查找到的一些关键词及意思,也附上吧。

      在我的配置中,因为刚上手所以都是默认的。

                    Options Indexes FollowSymLinks MultiViews
    		AllowOverride None
    		Order allow,deny
    		allow from all            
    

      

    1.Options选项用于定义目录使用哪些特性,包括Indexes、MultiViews和ExecCGI等

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

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

      ExecCGI:允许在该目录下执行CGI脚本

      FollowSymLinks:可以在该目录中使用符号连接

      Includes:允许服务器端包含功能

      IncludesNoExec:允许服务器端包含功能,但禁用执行CGI脚本,让主目录允许目录浏览

    2.AllowOverride None

      AllowOverride选项用于定义位于每个目录下.htaccess(访问控制)文件中的指令类型。基于安全和效率的原因,虽然可以通过.htaccess来设置目录的访问权限,但应尽可能地避免使用.htaccess文件,所以一般将AllowOverride设置为"None",即禁止使用.htaccess文件,而将目录权限的设置放在主配置文件httpd.conf的<Directory>和</Directory>语句之间

    3.Order allow, deny (控制来访者的权限)

    Order选项用于定义缺省的访问权限与Allow和Deny语句的处理顺序。Allow和Deny语句可以针对客户机的域名或IP地址进行设置,以决定哪些客户机能够访问服务器。Order语句通常设置为以下两种值之一。

    allow, deny:缺省禁止所有客户机的访问,且Allow语句在Deny语句之前被匹配。如果某条件既匹配Deny语句又匹配Allow语句,则Deny语句会起作用(因为Deny语句覆盖了Allow语句)。

    deny, allow:缺省允许所有客户机的访问,且Deny语句在Allow语句之前被匹配。如果某条件既匹配Deny语句又匹配Allow语句,则Allow语句会起作用(因为Allow语句覆盖了Deny语句)。
    下面举一些例子来说明Order、Allow和Deny语句的使用方法。

    【例1】允许所有客户机的访问。

    Order allow,deny
    Allow from all

    【例2】除了来自hacker.com域和IP地址为192.168.16.111的客户机外,允许所有客户机的访问。

    Order deny ,allow
    Deny from hacker.com
    Deny from 192.168.16.111

    【例3】仅允许来自网络192.168.16.0/24客户机的访问。

    Order allow,deny
    Allow from 192.168.16.0/24

    对比:

    Order deny ,allow
    Allow from 192.168.16.0/24

    这两条语句是允许所有客户机的访问。

    【例4】仅允许来自网络192.168.16.0/24客户机的访问,但IP地址为192.168.16.111的客户机除外。

    Order allow,deny
    Allow from 192.168.16.0/24
    Deny from 192.168.16.111 对比: Order deny ,allow
    Allow from 192.168.16.0/24
    Deny from 192.168.16.111

    由于Allow语句覆盖了Deny语句,因此这3条语句是允许所有客户的访问。

    至于最后一个。。。。看到的资料都木有说这个的。。。

    解释部分,找不到原创的地址了额。。。。

  • 相关阅读:
    flask-bootstrap
    SSH
    Spring ContextLoaderListener与DispatcherServlet所加载的applicationContext的区别
    加载spring 的方法。
    简约的form表单校验插件
    javascript 大数值数据运算
    【解题报告】 Task
    【解题报告】 POJ1050 To the Max
    。。。
    【解题报告】 POJ2054 给树染色
  • 原文地址:https://www.cnblogs.com/cangzhou/p/3031489.html
Copyright © 2020-2023  润新知