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>
。
我知道 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>
。