【问题标题】:PHP - htaccess - output_bufferingPHP - htaccess - output_buffering
【发布时间】:2011-06-06 05:45:03
【问题描述】:

我在应用程序根目录的 htaccess 文件中有以下代码来打开输出缓冲。

php_value output_buffering On
php_value output_handler mb_output_handler

在某些服务器上它会导致 500 内部错误,而在其他服务器上它可以正常工作。有谁知道为什么它有时会导致错误。有没有其他方法可以做到这一点?

谢谢!

【问题讨论】:

  • 那些返回错误的服务器是否运行 4.0.4 之前的 PHP 版本?
  • 不,都是5.2以上的。
  • 嘿,我遇到了重定向问题,我只是在 .htaccess 文件中添加了上面的 2 行,并在我的文件中添加了 ob_start() 和 flush() 方法它的工作就像一个魅力谢谢:)

标签: php .htaccess output-buffering


【解决方案1】:

你只能使用这种语法if PHP is running as an Apache module.

500 错误可能出现在并非如此的服务器上。

为了完全确定,请查看服务器的 error.log 文件以获取详细的错误消息。

【讨论】:

  • 非常感谢您!
  • 即使我们认为服务器没有将 PHP 作为 Apache 模块运行,为什么会抛出 500 错误? .htaccess 文件的内容不只是被忽略了吗? ?
  • @Pacerier 不,Apache 在遇到未知命令时总是抛出 500 错误。
【解决方案2】:

这些指令仅在 PHP 作为模块安装时才有效。在其他服务器上它将导致 500,因为它们将是无效指令

【讨论】:

  • 即使我们认为服务器没有将PHP作为Apache模块运行,为什么会抛出500错误? .htaccess 文件的内容不就被忽略了吗?
  • 不,内容被评估为指令,如果 PHP 模块不存在,Apache 将不知道如何解释“php_value”指令,因此它将失败并返回 500
【解决方案3】:

不确定,但我认为错误是由第一行引起的。

将 php_flag 用于 On/Off True/False 开关,如下所示:

php_flag output_buffering On

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2023-03-13
    相关资源
    最近更新 更多