Использование.htaccess для создания all.html страницы для запуска as.php файлы?
Мне нужно запустить все мои файлы .html как файлы.php, и у меня нет времени менять все ссылки до нашей завтрашней презентации. Есть ли какой-нибудь способ "взломать" это с помощью моего сервера Apache?
13 answers
Создайте файл .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
На моем сервере Godaddy работал следующий код
Options +ExecCGI
AddType application/x-httpd-php .php .html
AddHandler x-httpd-php5 .php .html
Для тех, у кого все еще есть проблемы,
Попробуйте это (мой хостинг был от Godaddy, и это единственное, что сработало для меня среди всех ответов.
AddHandler x-httpd-php5-cgi .html
Вы также можете использовать флаг 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
Пример:
RewriteRule \.(html|htm|txt|foo)$ - [T=application/x-httpd-php5]
Приведенный выше пример изменит тип mime файлов, которые заканчиваются на .html , . htm , . текст , .foo на php.
Примечание: на некоторых серверах вам придется изменить php5 на php, чтобы этот пример работал в строке обработчика:
Измените его
[T=application/x-httpd-php5]
До
[T=application/x-httpd-php]
Вам нужно добавить следующую строку в файл конфигурации Apache:
AddType application/x-httpd-php .htm .html
Вам также нужны две другие вещи:
-
Разрешить переопределение
В файле
your_site.conf
(например, в разделе/etc/apache2/mods-available
в моем случае) добавьте следующие строки:<Directory "<path_to_your_html_dir(in my case: /var/www/html)>"> AllowOverride All </Directory>
-
Включить режим перезаписи
Выполните эту команду на своем компьютере:
sudo a2enmod rewrite
После любого из этих шагов вам следует перезапустить apache:
sudo service apache2 restart
Я думаю, что это лучший способ запустить php-скрипт на html- и htm-страницах:
AddType application/x-httpd-php5 .html .htm
Обычно вы должны добавить:
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 На Godaddy.
Используя подход @Marc-François, Firefox предложил мне загрузить html-файл
Наконец, для меня работает следующее (с использованием обоих):
AddType application/x-httpd-php .htm .html
AddHandler x-httpd-php .htm .html
Это в редакции всех других правильных ответов:
Если вы не можете найти правильный обработчик, просто создайте файл .php со следующим содержимым:
<?php echo $_SERVER['REDIRECT_HANDLER']; ?>
И запустите/откройте этот файл в браузере.
Используйте этот вывод в файле .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
AddHandler application/x-httpd-php .php .html .htm
// or
AddType application/x-httpd-php .php .htm .html
Я использую PHP7.1, работающий в моем Raspberry Pi 3.
В файле /etc/apache2/mods-enabled/php7.1.conf
Я добавил в конце:
AddType application/x-httpd-php .html .htm .png .jpg .gif
Запуск html-файлов, так как php внезапно перестал работать в моем файле .htaccess.
Поддержка Godaddy заставила меня изменить его на:
AddHandler application/x-httpd-lsphp .html