Если файл содержит код PHP, это не значит, что он должен иметь расширение .php
;тем более, когда вы получаете доступ к файлу через Интернет.
Когда вы запрашиваете http://mysite.com/page и используете .htaccess
, как в Drupal, запрос перенаправляется на index.php?q=page
, после чегоDrupal проверит свою базу данных на соответствие пути page
.Если он найдет его, он отобразит контент для этой страницы, если нет, то он (правильно) даст 404.
Если вы хотите, чтобы все ваши страницы были доступны с расширением PHP, вы можете добавить дополнительное правилов вашем файле .htaccess
, чтобы удалить .php
из любого запроса, где файл PHP физически не существует:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.php $1 [NC]
Имейте в виду, что это добавляет нулевую дополнительную ценность для посетителей вашего сайта (на самом делеони должны помнить расширение файла, а также путь к странице), и в нем раскрывается, какую именно серверную технологию вы используете, чтобы потенциальный злоумышленник мог выполнить для него часть своей работы.
Надеюсь, это поможет.