所有选项必须以 + 或 - 开头,或者没有选项可以

qg_*_*137 3 apache httpd.conf

我使用以下命令重新启动 apache:

# ./apachectl restart
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

AH00526:/usr/local/httpd/conf/extra/httpd-vhosts.conf 第 37 行存在语法错误:所有选项必须以 + 或 - 开头,或者没有选项。

httpd-vhosts.conf的如下:

[root@localhost bin]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

 25     DocumentRoot "/usr/local/httpd/htdocs/whmcs"
 26     ServerName 33.hk
 27     ServerAlias http://www.33.hk
 28     ErrorLog "logs/33.hk-error_log"
 29 </VirtualHost>
 30 
 31 <VirtualHost *:80>
 32     #ServerAdmin webmaster@dummy-host2.localhost
 33     DocumentRoot "/usr/local/httpd/htdocs/whmcs/admin"
 34     ServerName 1.33.hk
 35     DirectoryIndex index.php
 36     <Directory "/usr/local/httpd/htdocs/whmcs/admin">
 37       Options -Indexes FollowSymLinks
 38       AllowOverride None
 39       Order allow,deny
 40       Allow from all
 41     </Directory>
 42     ErrorLog "logs/1.33.hk-error_log"
 43     CustomLog "logs/1.33.hk-access_log" common
 44 </VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我的37线路是Options -Indexes FollowSymLinks,你能告诉我错误在哪里吗?

小智 6

请参阅文档https://httpd.apache.org/docs/2.4/mod/core.html#options

通常,如果多个选项可以应用于一个目录,则使用最具体的一个,而忽略其他选项;选项未合并。(查看如何合并各节。)但是,如果选项指令上的所有选项前面都有 + 或 - 符号,则选项将被合并。任何前面带 + 的选项都会添加到当前有效的选项中,任何前面带 - 的选项都会从当前有效的选项中删除。

只需用 + 标记该选项即可明确您要添加它,如下所示:

Options -Indexes +FollowSymLinks
Run Code Online (Sandbox Code Playgroud)