我知道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>
(引用/
是不是很奇怪,即服务器文件系统的根目录?)
或者我应该将DocumentRoot
复制/粘贴到Directory
中,如下所示:
DocumentRoot /home/www/mysite1/
<Directory "/home/www/mysite1/">
Require all granted
</Directory>
如果是这样,每次我们修改Directory
时都必须复制/粘贴到DocumentRoot
这很烦人,为什么需要配置路径重复?在没有复制路径的情况下,是否有办法为所有说Require all granted
?
答案 0 :(得分:1)
请参阅Apache手册中的Configuration Sections。
实际上, <Directory>
确实是指文件系统路径。
您可以使用<Location>
指定整个网站的规则,与文件系统上的位置无关。
答案 1 :(得分:0)
我使用了这个设置
<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的路径,好像有几个站点有&#34; /&#34;他们会互相覆盖选项