了解 <Directory> 指令中的 Apache Order 和 Allow

Joh*_*lia 5 apache-2.2

我已经尝试阅读手册,但说实话,我仍然发现很难理解和理解 Order/Allow 的实际作用以及 Web 服务器的默认设置应该是什么。

我有以下默认配置,我关闭了 .htaccess 和符号链接。

虽然我不太确定Order Allow,DenyAllow from all实际做了什么?我应该将其从 127.0.0.1 更改为 Allow 吗?

<Directory />
Options -Indexes -FollowSymLinks MultiViews
AllowOverride None
Order Allow,Deny
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

另外,我是否需要以下内容,<Files>或者是否有更好的方式为 apache 编写此内容?

<Directory /var/www/example/subdomains/dev/public/webapp>
    RewriteEngine Off

    <Files *>
        order allow,deny
        deny from all
    </Files>
    <FilesMatch "\.(png|gif|jpe?g|png|css|js|swf|ps|flv)$">
        order allow,deny
        allow from all
    </FilesMatch>
</Directory>
Run Code Online (Sandbox Code Playgroud)

qua*_*nta 7

Order Allow,Deny意味着Allow规则在Deny规则之前被处理。如果客户端不匹配Allow规则或匹配Deny规则,它将被拒绝访问。

所以,

Order Allow,Deny
Allow from all
Run Code Online (Sandbox Code Playgroud)

意味着任何客户端都可以访问您的 Web 服务器。

我想关闭 .htaccess 和符号链接。

你已经做到了与AllowOverride NoneOptions -FollowSymLinks

<Directory /var/www/example/subdomains/dev/public/webapp>
    RewriteEngine Off

    <Files *>
        order allow,deny
        deny from all
    </Files>
    <FilesMatch "\.(png|gif|jpe?g|png|css|js|swf|ps|flv)$">
        order allow,deny
        allow from all
    </FilesMatch>
</Directory>
Run Code Online (Sandbox Code Playgroud)

此配置执行以下操作:

  • 禁用重写引擎
  • 客户端将被拒绝访问文件webapp夹中除图像、js、swf 之外的所有文件...

注意:

order allow,deny
deny from all
Run Code Online (Sandbox Code Playgroud)

它告诉 Apache 拒绝任何访问。