AddType в htaccess вызывает либо загрузку, либо HTTP ERROR 500

В настоящее время я использую «AddHandler application/x-httpd-ea-php56.php» в моем файле htaccess в корне домена, так как это единственное, что работает.

Если я попытаюсь переключиться на 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... пуф без куки.

Если я добавлю AddHandler application/x-httpd-ea-php56 .php обратно, он снова будет работать нормально.

Я также пробовал другие методы, которые я нашел при поиске. У кого-нибудь еще была эта проблема? Хозяин Bluehost.

Единственные другие полусвязанные вещи, которые у меня есть в корневом файле htaccess, это следующее, но я также попытался удалить его без каких-либо изменений в результатах:

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

person Jelly Jarkskin    schedule 17.10.2019    source источник
comment
Какую версию Apache вы используете?   -  person Dave    schedule 17.10.2019
comment
Правильным утверждением в разделе <IfModule mime_module> является AddType application/x-httpd-php .php. И, конечно же, убедитесь, что вы загрузили модуль PHP7 LoadModule php7_module "/pathto/PHP/php7apache2_4.dll"   -  person Dave    schedule 17.10.2019
comment
Apache Version 2.4.39 Попытка внести предложенные изменения привела к тому же. ‹IfModule mime_module› LoadModule php7_module /pathto/PHP/php7apache2_4.dll AddHandler application/x-httpd-ea-php7 .php .php7 .phtml ‹/IfModule› или ‹IfModule mime_module› LoadModule php7_module /pathto/PHP/php7apache2_4.dll AddType application/x-httpd-php7 .php ‹/IfModule› привело к еще большей ошибке.   -  person Jelly Jarkskin    schedule 17.10.2019
comment
‹IfModule mime_module› Приложение AddType/x-httpd-php.php ‹/IfModule› привело к ошибке 500 (даже если добавить 7 к x-httpd-php)   -  person Jelly Jarkskin    schedule 17.10.2019
comment
Я предполагаю, что строка LoadModule, которую вы использовали, на самом деле имела путь к тому месту, где у вас установлен PHP.   -  person Dave    schedule 17.10.2019
comment
Насколько мне известно, да. Я считаю, что путь должен быть /usr/php/70/, но, к сожалению, я этого не вижу, так как это общая учетная запись, и я не могу сделать резервную копию так далеко. Застрял в /home/username как ближайший к корневому каталогу, который я могу получить.   -  person Jelly Jarkskin    schedule 18.10.2019
comment
Это информация, которую ваш хостинг-провайдер должен предоставить и иметь в наличии. Вы должны получить это правильно или ничего не будет работать.   -  person Dave    schedule 18.10.2019


Ответы (3)


Кажется, что на вашем сервере есть конфликты версий 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

Надеюсь, это поможет!

person genzdev    schedule 17.10.2019
comment
К сожалению, в этом раунде у меня нет возможности сделать это. Это общий аккаунт. - person Jelly Jarkskin; 18.10.2019
comment
Я думаю, что вы все равно можете обновить версию PHP, даже если это общая учетная запись, если у вас установлена ​​Cpanel, сделайте следующее: my.bluehost.com/hosting/help/php-version-selection-php-config - person genzdev; 18.10.2019
comment
Я знаю, что у меня есть метод, но я не хочу нажимать на него. MultiPHP Manager действительно показывает 5.6 для основного каталога, а все остальное показывает 7.3, однако, если изменение его на 7.x из htaccess вызовет ошибку, как это было, я задавался вопросом, произойдет ли то же самое из MultiPHP Manager. Если это так, он предупреждает, что я не смогу вернуться, так как застряну с вариантами 7.0 - 7.3. Так что, если это произойдет, я застряну, и сайт будет отключен бог знает сколько времени, пока это не будет исправлено. - person Jelly Jarkskin; 20.10.2019

Для Godaddy мое решение заключалось в том, чтобы после обновления php добавить следующую строку (удаление старой декларации php):

Приложение AddHandler/x-httpd-alt-php74___lsphp .php .html .htm

Это действительно требовало явного объявления типа страницы.

person John    schedule 05.07.2021

У меня была такая же проблема с сайтом Wordpress, когда я пытался обновить версию php с помощью cpanel. В .htaccess была следующая директива, которая блокировала версию php в 7.2 независимо от того, какую версию я выбрал в CPanel.

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

Wordpress ломался каждый раз, когда пытались изменить эту директиву.

Решение было удалить эту директиву.

person André Cunha    schedule 30.06.2021