今晚我将我的 VPS 从 Ubuntu 16.04 LTS 升级到了 Ubuntu 18.04 LTS。一切都按预期进行,对 php aisle 5.6 进行了一些清理,对 php aisle 7.4 进行了一些库存整理。在我完成所有配置和模块更改后,Apache 毫无问题地重新启动了;我以为一切就绪了。但我的 4 个网站中有 3 个无法加载;没有干净的 404 页面,只有这个配置错误消息。
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
审查之后/var/log/apache2/error.log
,我发现了这一点:
[Wed May 06 03:55:16.190469 2020] [core:alert] [pid 5657] [client 10.10.10.10:56897]
/var/www/abc/example.com/.htaccess: No comments are allowed here, referer: https://example.com/
尝试了几种不同的方法后,似乎行首的注释不是问题,文件正常行结尾的注释才是问题。删除这些#main office
注释或将其移动到自己的行中即可恢复一切。该# Allow from this IP address
行仍保留在我的 .htaccess 文件中,但不会给我带来任何麻烦。
<Files wp-login.php>
order deny,allow
Deny from all
#
# Allow from this IP address
allow from 10.10.10.10 #main office
allow from 10.10.11.10 #satellite office
</Files>
这是“错误”还是“功能”?在 Google 中搜索“.htaccess:此处不允许评论”几乎什么都没出现。(当第四次搜索到外语时,您就知道您有麻烦了)。显然,跳转到 Ubuntu 18.04 或相关的 apache 或 php 更新是“何时”,但为什么?为什么这个内联文档有问题?怎么回事?
答案1
这是 Apache 的一个功能配置语法:
以井号“#”开头的行被视为注释,将被忽略。注释可能 不是 与配置指令包含在同一行。指令前的空格会被忽略,因此您可以缩进指令以提高清晰度。空白行也会被忽略。
这一点最近没有改变:Apache 1.3。如果这些错误在升级后出现,则这些.htaccess
文件可能之前从未使用过。建议避免使用.htaccess
除非绝对必要。