这段代码有什么区别=>
<Directory "C:\xampp\htdocs\coderevenge.com">
options Indexes FollowSymlinks Includes ExeCGI
AllowOverride All
Require all granted
</Directory>
此处的代码 =>
<Directory "C:\xampp\htdocs\coderevenge.com">
options +Indexes +FollowSymlinks +Includes +ExeCGI
AllowOverride All
Require all granted
</Directory>
答案1
从https://docstore.mik.ua/orelly/linux/apache/ch03_11.htm:
参数前面可以加“+”或“-”,在这种情况下,参数会被添加或删除。例如,以下命令会添加Indexes
但会删除ExecCGI
:
Options +Indexes -ExecCGI
如果没有设置任何选项,也没有指令,则效果就像已设置了 All,这当然意味着未设置 MultiViews。如果设置了任何选项,则 All 将被关闭。这至少有一个奇怪的效果:如果您有一个 ... /htdocs 目录,其中没有 index.html 和一个非常简单的配置文件,并且您访问该站点,则会看到 ... /htdocs 目录。例如:
User Webuser
Group Webgroup
ServerName www.butterthlies.com
DocumentRoot /usr/www/site.ownindex/htdocs
如果添加以下行:
Options ExecCGI
再次访问它,你会看到以下令人困惑的消息:
FORBIDDEN
You don't have permission to access / on this server
原因是,当未提及选项时,默认情况下会将其设置为全部。通过打开 ExecCGI,您可以关闭所有其他选项,包括索引。解决此问题的方法是编辑配置文件,使新行显示为:
Options +ExecCGI
类似地,如果没有使用“+”或“-”,且多个选项可以应用于一个目录,则采用最后一个最具体的选项。例如:
Options ExecCGI
Options Indexes
结果是只设置了索引,这可能会让您感到惊讶。