デフォルトで含まれている .htaccess のアクセス制御設定が Apache 2.2 向けの設定になっている。
例 (skin/.htaccess):
<FilesMatch "\.(skin\.php)$"> Order allow,deny Deny from all </FilesMatch>
これを Apache 2.4 での設定に変更する。
例: (skin/.htacces):
<FilesMatch "\.(skin\.php)$"> Require all denied </FilesMatch>
Apache 2.4 でも mod_access_compat モジュールが有効な環境では2.2の記述で動作する。 であるが、 mod_access_compat は非推奨であり、 また Apache 2.2 自体が 2017年12月にサポート切れになっていることから、 デフォルトは Apache 2.4 のものに変更するべきである。
As previously announced, the Apache HTTP Server Project has discontinued all development and patch review of the 2.2.x series of releases. The Apache HTTP Server Project had long committed to provide maintenance releases of the 2.2.x flavor through June of 2017. The final release 2.2.34 was published in July 2017, and no further evaluation of bug reports or security risks will be considered or published for 2.2.x releases.
.htaccess attach/.htaccess backup/.htaccess cache/.htaccess counter/.htaccess diff/.htaccess lib/.htaccess plugin/.htaccess skin/.htaccess wiki.en/.htaccess wiki/.htaccess
PukiWiki では主に (内部のファイルにアクセスされないため) Require all denied が使われている。
Apache 2.2 でも mod_auzhz_host が存在するため、 denied対象のファイルにアクセスされなければエラーは起きず、PHPも実行される。 例えば index.php にもアクセスでき、PukiWiki 動作に影響はない。
"denied"の対象ファイル、例えば skin/pukiwiki.skin.php にアクセスしようとすると、 Internal Server Error が返される。実際に発生しているエラーは以下のもの。
configuration error: couldn't perform authentication. AuthType not set!: /skin/pukiwiki.skin.php
正常系アクセスには影響がないため Apache 2.2 の環境でも結果として問題ない。