Directory 是相对于本地服务器路径还是 public URL 路径?

Is Directory relative to local server path or public URL path?

我知道 DocumentRoot 是指服务器的本地路径(在磁盘上),即

<VirtualHost :80>
ServerName example.com
DocumentRoot /home/www/mysite1/

浏览 http://example.com/foo/index.html 将访问服务器上的 /home/www/mysite1/foo/index.html

那么,我应该使用(有时似乎有效):

<Directory "/">
Require all granted
</Directory>

(引用 /,即服务器文件系统的根是不是很奇怪?)

或者我应该 copy/paste 把 DocumentRoot 变成 Directory 像这样:

DocumentRoot /home/www/mysite1/
<Directory "/home/www/mysite1/">
Require all granted
</Directory>

?

如果是这样,每次修改DocumentRoot都要copy/paste变成Directory,这很烦人,为什么这是重复需要的配置路径?有没有一种方法可以说 Require all granted for everything 而不必复制路径?

我使用了这个设置

<VirtualHost *:80>
    ServerName seminarium.loc
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/seminarium.loc/public

    <Directory /var/www/seminarium.loc/public>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

   ErrorLog /var/www/seminarium.loc/error.log
   CustomLog /var/www/seminarium.loc/access.log combined
</VirtualHost>

目录中的路径指定将应用选项的目录。排除可能的冲突是很自然的,最好指定 DocumentRoot 的路径,就好像有几个带有“/”的站点一样,它们会相互覆盖选项

请参阅 Apache 手册中的 Configuration Sections

<Directory> 的确是指文件系统路径。

您可以为整个网站指定规则,与文件系统上的位置无关,<Location>