htaccess 中的 AddType 导致下载或 HTTP 错误 500

问题描述 投票:0回答:4

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

如果我尝试切换到 php7,该页面要么尝试下载,要么得到 HTTP 错误 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
php apache .htaccess php-7 bluehost
4个回答
5
投票

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

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

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


2
投票

看来你的服务器上存在 PHP 版本冲突,解决这个问题的最简单方法就是更新你服务器上的 PHP 版本。

做任何事情之前先备份!

转到服务器的终端并输入:

php -v

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

所以例如,如果你有这个作为处理程序:

AddHandler application/x-httpd-ea-php71 .php
你的 PHP 版本应该是 7.1

如果您在不更新 PHP 版本的情况下更改 .htaccess 处理程序,则会发生冲突。

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

希望对您有所帮助!


0
投票

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

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

每次尝试更改此指令时,wordpress 都会崩溃。

解决方案是删除此指令。


0
投票

我遇到了同样的问题,我正在使用 SiteGround,当我进入我的页面时,它只会下载网站。我知道问题出在指令上。 mime_module 但我已经用我的 htaccess 正确配置了 php 版本

© www.soinside.com 2019 - 2024. All rights reserved.