.htaccess php_value 和 php_flag 在子目录中被忽略

.htaccess php_value 和 php_flag 在子目录中被忽略

我的 public_html 目录中有一个 .htaccess 文件,其中包含以下规则:

<IfModule litespeed>
php_flag zlib.output_compression On
php_value zlib.output_compression_level 2
php_value session.gc_maxlifetime 200000
php_flag display_startup_errors On
php_flag html_errors On
php_flag ignore_repeated_errors Off
php_flag ignore_repeated_source Off
php_flag report_memleaks On
php_flag track_errors On
php_value log_errors_max_len 0
php_flag display_errors Off
php_flag log_errors On
php_value error_log errors.log
php_value max_execution_time 600
php_value max_input_time 600
php_value max_input_vars 100000
</IfModule>

他们工作正常,已确认phpinfo();

但是,当我将 .htaccess 文件放在子目录中时,如果规则假设要覆盖上述规则,则这些规则会被完全忽略,只有上述规则有效。

例如,我在 public_html/admin 目录中放置了一个 .htaccess 文件,其规则如下

<IfModule litespeed>
php_value session.gc_maxlifetime 7200
php_flag display_errors On
</IfModule>

检查时phpinfo();显示值仍然为“200000”和“关闭”,而不是分别为“7200”和“开启”。

为什么会发生这种情况?我该如何解决?

答案1

确保在您需要的地方允许覆盖。

<Directory "/var/www/htdocs">
    AllowOverride All
</Directory>

AllowOverride None将禁用.htaccess。

答案2

原来我发现了 litespeed 服务器的一个错误。我已将其报告给 LS,他们随后修复了它:

https://www.litespeedtech.com/support/forum/threads/solved-htaccess-php_value-and-php_flag-being-ignored-in-sub-directory.13933/

相关内容