Apache2 - 在哪里在配置文件中?

Apache2 - 在哪里在配置文件中?

<location>为什么我的 Apache2 配置文件中没有?

$ sudo nano /etc/apache2/apache2.conf

我可以找到<Directory />如下内容:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
</Directory>

但我根本找不到。我尝试允许 OPTIONS DELETE PUT 方法,如下所示:

<Location "/">
    AllowMethods GET POST OPTIONS DELETE PUT
    Require all granted
</Location>

我的 Apache 版本:

$ apache2 -v
Server version: Apache/2.4.38 (Ubuntu)
Server built:   2019-08-26T13:31:40

有什么想法如何添加吗AllowMethods GET POST OPTIONS DELETE PUT

答案1

因为<Location>指令适合于特定需求(规则),而这些规则不适合任何默认配置:)

指令<Location>通过 URL 限制所包含指令的范围。它类似于指令<Directory>,并以子节开始,并以指令结束</Location><Location>各节按其在配置文件中出现的顺序进行处理,在读取<Directory>节和文件之后,以及在读取节之后。.htaccess<Files>

<Location>部分完全在文件系统之外运行。这会产生多种后果。最重要的是,<Location>不应使用指令来控制对文件系统位置的访问。由于多个不同的 URL 可能映射到同一文件系统位置,因此可能会规避此类访问控制。

<Directory />指令指的是文件系统的根目录/。另一方面<Location />指的是基本 URI - http://example.com/,其中example.comServerName虚拟主机的 。因此,为 编写的规则<Location />将覆盖为 编写的规则<Directory /var/www/html>,其中/var/www/htmlDocumentRoot特定虚拟主机。

相关内容