Используя .htaccess, чтобы все .html-страницы работали как файлы .php? - PullRequest
46 голосов
/ 14 января 2011

Мне нужно запустить все мои файлы .html как файлы .php, и у меня нет времени, чтобы изменить все ссылки до нашей презентации завтра.Есть ли способ «взломать» это с моим сервером Apache?

Ответы [ 13 ]

58 голосов
/ 14 января 2011

Создайте файл .htaccess в корне вашего сайта и добавьте следующую строку:

[Apache2 @ Ubuntu / Debian: используйте эту директиву]

AddType application/x-httpd-php .html .htm

Или, из комментария ниже:

AddType application/x-httpd-php5 .html .htm

Если вы используете PHP как CGI (вероятно, не так), вы должны написать вместо этого:

AddHandler application/x-httpd-php .html .htm 
10 голосов
/ 09 марта 2013

В My Godaddy Server работает следующий код

Options +ExecCGI
AddType application/x-httpd-php .php .html
AddHandler x-httpd-php5 .php .html
6 голосов
/ 30 ноября 2015

Вы также можете использовать флаг H или T для mod_rewrite, чтобы принудительно проанализировать все .html-файлы с помощью обработчика php:

с использованием H (обработчик):

 RewriteEngine on

RewriteRule \.(html|htm)$ - [H=application/x-httpd-php5]

с помощьюФлаг T (Тип):

 RewriteEngine on

RewriteRule \.(html|htm)$ - [T=application/x-httpd-php5]

Или вы можете добавить больше расширений в шаблон правила, разделенных каналом | , которые вы хотите проанализировать обработчиком php

ex:

RewriteRule \.(html|htm|txt|foo)$ - [T=application/x-httpd-php5]

В приведенном выше примере будут изменены типы файлов MIME, заканчивающиеся на .html , .htm , .txt , .foo to php.

Примечание: на некоторых серверах вам придется изменить php5 на php , чтобы этот пример работалв строке обработчика:

Измените

[T=application/x-httpd-php5]

на

[T=application/x-httpd-php]
5 голосов
/ 26 марта 2016

Вам необходимо добавить следующую строку в файл конфигурации Apache:

AddType application/x-httpd-php .htm .html

Вам также нужны две другие вещи:

  1. Разрешить переопределение

    В файле your_site.conf (например, в моем случае /etc/apache2/mods-available) добавить следующие строки:

    <Directory "<path_to_your_html_dir(in my case: /var/www/html)>">
        AllowOverride All
    </Directory>
    
  2. Включить переписать мод

    Запустите эту команду на вашем компьютере:

    sudo a2enmod rewrite 
    

    После любого из этих шагов вы должны перезапустить apache:

    sudo service apache2 restart
    
5 голосов
/ 29 августа 2012

Для тех, у кого все еще есть проблемы,

, попробуйте это (мой хостинг был Godaddy , и это единственное, что сработало для меня среди всех ответов там.*

AddHandler x-httpd-php5-cgi .html
4 голосов
/ 20 декабря 2014

Обычно вы должны добавить:

Options +ExecCGI
 AddType application/x-httpd-php .php .html
 AddHandler x-httpd-php5 .php .html

Однако для общего хостинга GoDaddy (php-cgi) вам необходимо добавить также следующие строки:

AddHandler fcgid-script .html
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html

Источник: Разбор HTML как PHP с использованием файла HTACCESS On Godaddy .

4 голосов
/ 27 апреля 2013

Я думаю, что это лучший способ запустить скрипт php на страницах html и htm:

AddType application/x-httpd-php5 .html .htm
3 голосов
/ 20 марта 2018

Это в редакции на все остальные правильные ответы:

Если вы не можете найти правильный обработчик, просто создайте файл .php со следующим содержимым:

<?php echo $_SERVER['REDIRECT_HANDLER']; ?>

и запустите / откройте этот файл в браузере.

Output from the php code, copy this output

Использовать этот вывод в файле .htaccess

Создайте файл .htaccess в корне вашего сайта (обычно это папка с именем public_html или htdocs на серверах Linux) и добавьте следующую строку:

AddType [[THE OUTPUT FROM ABOVE FILE]] .html .htm

Пример

AddType application/x-httpd-php70 .html .htm

Важное примечание:

Если вы видите пустую страницу или Notice: Undefined index: REDIRECT_HANDLER

Попробуйте значение по умолчанию в .htaccess

AddHandler application/x-httpd-php .html
2 голосов
/ 14 января 2011

вставьте это в свой .htaccess

AddType application/x-httpd-php .php .htm .html

больше информации на этой странице

1 голос
/ 20 июня 2018

Запуск файлов .html, так как php внезапно перестал работать в моем файле .htaccess.

Поддержка Godaddy заставила меня изменить его на:

AddHandler application/x-httpd-lsphp .html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...