У меня проблема с настройкой apache для запуска только файлов с .php
расширение через FastCGI. Пример конфигурации VirtualHost:
<VirtualHost 192.168.0.185:80>
ServerName host1.example.com
DocumentRoot /home/www/host1.example.com/WWW/
SuexecUserGroup host1 www
<Directory "/home/www/host1.example.com/WWW/">
AllowOverride All
Options +ExecCGI
AddHandler fcgid-script .php
FcgidWrapper /home/www/host1.example.com/fcgi/php5.fcgi
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Проблема в том, что он также запускает такие файлы, как whats.new.in.php.6.html
(в основном каждый файл, содержащий .php
за которым следует точка) как fastcgi вместо того, чтобы обслуживать его как статический контент. Я пробовал менять AddHandler к
AddHandler fcgid-script .php$
Не повезло - файлы php не интерпретировались и обслуживались как обычный текст.
Есть ли способ предотвратить это?
Хорошо, мне удалось это решить. Вместо того AddHandler
я использовал AddType
с именем обработчика:
AddType fcgid-script .php
И теперь работает только для *.php
файлы.
Одна из идей - убрать знак доллара. В AddHandler
option принимает расширение, а не регулярное выражение или глобус. Таким образом, правильная строка будет в вашем оригинале
# With or without the leading dot, mod_mime doesn't care
AddHandler fcgid-script .php
Что касается того, почему он отмечает html-файлы как исполняемые, я понятия не имею - где-то может быть флаг, устанавливающий его, возможно, в конфигурации по умолчанию. Однако в качестве обходного пути вы можете УДАЛИТЬ обработчик для файлов .html, используя следующее, чтобы они обрабатывались как обычные файлы text / html.
RemoveHandler .html