Magento 2.2.2 错误 .htaccess IfVersion 2.4

Magento 2.2.2 error .htaccess IfVersion 2.4

在 Magento 2.2.2 的默认 .htaccess 中,有如下两个内容:

<Files cron.php>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>

有些文件大约有 20 个这样的文件(例如 composer.json、composer.lock、.gitignore 等)

更新 magento 时出现了很多错误,当我将它们从 htaccess 中删除后,问题就消失了。

请问是否有此版本检查,该怎么做以及删除它们时会发生什么情况?

这是 apache 版本控制。 您可以从上面获得更多详细信息 GitHub link https://github.com/magento/magento2/issues/10810

这些更改是根据安全前景进行的,以改进直接文件访问算法。

早期版本的 Magento 不支持 >=2.4 的 Apache 版本。我曾经在 htaccess 文件中手动将 order allow,deny deny from all 行替换为 Require all denied 来解决问题。

从 Magento 2.2.2 版本开始,代码已更改为也支持 >= 2.4 的 apache 版本。 ( https://github.com/magento/magento2/pull/11459/files )

根据你提到的信息,我推断你的 Apache 版本是 < 2.4 ,而不是编辑所有 24 个文件,你可以 load mod_version.

您必须从 apache 配置文件加载版本模块,如下所示。

LoadModule version_module /usr/lib64/apache2/mod_version.so

否则您可能会收到“内部服务器错误”。

我在 Centos(Cpanel) Apache 2.4 上遇到了同样的问题。通过为 Apache 启用 mod_version 模块解决了该问题。