Вопрос

У меня есть файл shtml index.shtml, в который я хочу включить файл PHP, который выполняет некоторое программирование и возвращает данные HTML.Я пытаюсь включить свой файл PHP, но не знаю, как это сделать. Я пробовал следовать инструкциям, но ничего не работает.

Следующая строка просто печатает ошибку: "[произошла ошибка при обработке этой директивы] ":

<!--#include file="/SSI/test.php"--> 

В этой строке отображаются некоторые ненужные символы:

<!--#include virtual="/SSI/test.php"--> 

Эта строка ничего не делает и отображает команду так, как она есть на странице .shtml.

<?PHP 
    include("/SSI/test.php");
?>

Спасибо

Это было полезно?

Решение

Если нет конкретной причины использования .shtml, кроме упомянутой вами относительно трафика, вы можете изменить его обработку в файле .htaccess:

<Files *.shtml>
ForceType application/x-httpd-php
</Files>

Или вы можете указать этот файл конкретно:

<Files filename.shtml>
ForceType application/x-httpd-php
</Files>

Это заставит сервер анализировать .shtml, как если бы это был файл .php, и, следовательно, любые команды PHP должны обрабатываться, например, ваш оператор включения.Расширение файла менять не нужно.

Другие советы

Я могу ошибаться, но, учитывая полученную вами ошибку, проблема может быть не в операторе включения, а в ошибке во включаемом php-файле, которая и вызывает проблему.

Я не думаю, что вы можете это сделать в Apache (я понятия не имею о других веб-серверах). Документация Apache говорит, что «include_virtual» позволяет включать результаты программы CGI;но PHP не является приложением CGI с точки зрения Apache:это обрабатывается другим модулем и другим способом.

Колин

Чтобы последний работал, просто переименуйте свой .shtml в .php, но учтите, что это остановит работу любого shtml.Но это не должно быть проблемой, если вы также перепишете это на php.

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

 redirect permanent filename.shtml filename.php

Это перенаправит людей, посещающих example.com/filename.shtml, на example.com/filename.php.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top