【问题标题】:AddType in htaccess causes either download or HTTP ERROR 500htaccess 中的 AddType 导致下载或 HTTP ERROR 500
【发布时间】:2020-02-14 17:07:49
【问题描述】:

目前在域根目录的我的 htaccess 文件中使用“AddHandler application/x-httpd-ea-php56 .php”,因为这是唯一有效的方法。

如果我尝试切换到 php7,页面要么尝试下载,要么得到 HTTP ERROR 500。

以下下载页面:

AddHandler application/x-httpd-ea-php7 .php

以下给我 500 错误:

AddHandler application/x-httpd-ea-php71 .php

下载页面:

AddHandler x-httpd-php7 .php

500 错误:

<IfModule mime_module>
  AddType application/x-httpd-ea-php72 .php .php7 .phtml .htm .html
</IfModule>

500 错误:

<IfModule mime_module>
  AddHandler application/x-httpd-ea-php73 .php .php7 .phtml
</IfModule>

下载页面:

AddHandler application/x-httpd-php7 .php .html .htm .phtml .shtml

在子目录中,我可以使用以下内容就好了:

<IfModule mime_module>
  AddHandler application/x-httpd-ea-php73 .php .php7 .phtml
</IfModule>

尝试在根 .htaccess 文件中使用它...没有 cookie。

如果我重新添加 AddHandler application/x-httpd-ea-php56 .php,它会再次正常工作。

我还尝试了其他一些我发现的其他方法。其他人遇到过这个问题吗?主机是Bluehost。

我在根 htaccess 文件中拥有的唯一其他半相关的内容如下,但我也尝试将其删除,但结果没有改变:

AddHandler server-parsed .html
AddHandler server-parsed .htm

【问题讨论】:

  • 您使用的是什么版本的 Apache?
  • &lt;IfModule mime_module&gt; 部分中的正确语句是AddType application/x-httpd-php .php。当然,请确保您已经加载了 PHP7 模块 LoadModule php7_module "/pathto/PHP/php7apache2_4.dll"
  • Apache 版本 2.4.39 尝试进行建议的更改会导致相同的结果。 LoadModule php7_module "/pathto/PHP/php7apache2_4.dll" AddHandler application/x-httpd-ea-php7 .php .php7 .phtml LoadModule php7_module "/pathto/PHP/php7apache2_4 .dll" AddType application/x-httpd-php7 .php 导致更严重的错误。
  • AddType application/x-httpd-php .php 导致500错误(即使你在x-httpd-php中加了7)
  • 我假设您使用的 LoadModule 行实际上具有您安装 PHP 的路径。

标签: php apache .htaccess php-7 bluehost


【解决方案1】:

您的服务器上似乎存在 PHP 版本冲突,解决此问题的最简单方法是更新您服务器上的 PHP 版本。

在做任何事情之前进行备份!

转到您服务器的终端并输入:php -v

这应该会为您提供服务器上安装的 PHP 版本,现在请确保您的 .htaccess 处理程序与安装的 PHP 版本匹配。

例如,如果你有这个作为处理程序:AddHandler application/x-httpd-ea-php71 .php 你的 PHP 版本应该是 7.1

如果您更改 .htaccess 处理程序而不更新您的 PHP 版本,您将遇到冲突。

这是Bluehost的官方指南https://my.bluehost.com/hosting/help/htaccess-php-handlers

我希望这会有所帮助!

【讨论】:

  • 遗憾的是,这一轮我没有机会这样做。这是一个共享帐户。
  • 我认为即使是共享帐户你仍然可以更新PHP版本,如果你安装了Cpanel,请这样做:my.bluehost.com/hosting/help/php-version-selection-php-config
  • 我知道我有方法,但我舍不得点击。 MultiPHP Manager 确实为主目录显示 5.6,而其他所有内容都显示 7.3,但是,如果将其从 htaccess 更改为 7.x 会导致它像以前一样出现错误,我想知道 MultiPHP Manager 是否会发生同样的事情。如果是这样,它会警告我将无法返回,因为我会被 7.0 - 7.3 的选项卡住。因此,如果它确实出错,那么我会被卡住,并且该网站将离线,因为上帝知道它需要多长时间才能修复。
【解决方案2】:

当我尝试使用 cpanel 更新 php 版本时,我遇到了与 Wordpress 网站相同的问题。 .htaccess 中有以下指令在 7.2 中锁定了 php 版本,不管我在 CPanel 中选择了什么版本。

<IfModule mime_module>
  AddHandler application/x-httpd-ea-php72___lsphp .php .php7 .phtml
</IfModule>

每次尝试更改此指令时都会破坏 wordpress。

解决方案是删除此指令。

【讨论】:

    【解决方案3】:

    对于 Godaddy,我的解决方案是,在更新 php 后添加以下行(去掉旧的 php 声明):

    AddHandler 应用程序/x-httpd-alt-php74___lsphp .php .html .htm

    实际上只需要显式声明页面类型。

    【讨论】:

      猜你喜欢
      • 2013-06-06
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 2021-01-16
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多