了解 Apache Order 和 Allow指示

了解 Apache Order 和 Allow指示

我曾尝试阅读手动的尽管说实话,我仍然觉得很难理解和弄清楚 Order/Allow 实际上做了什么以及 Web 服务器的默认设置应该是什么。

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

虽然我不太清楚Order Allow,DenyandAllow from all到底起什么作用?我应该将其从 127.0.0.1 更改为允许吗?

<Directory />
Options -Indexes -FollowSymLinks MultiViews
AllowOverride None
Order Allow,Deny
Allow from all
</Directory>

此外,我是否需要下面的内容<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>

答案1

Order Allow,Deny表示Allow先处理规则,再处理规则Deny。如果客户端不匹配Allow规则,或者匹配Deny规则,都会被拒绝访问。

所以,

Order Allow,Deny
Allow from all

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

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

您已经使用AllowOverride None和完成了此操作Options -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>

此配置执行以下操作:

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

注意:

order allow,deny
deny from all

它告诉 Apache 拒绝任何访问。

相关内容