PuPHPet環境にてFuelPHPを使った開発していた。
『/index』にアクセス出来るように作っていたのに、アクセスが飛ばない。
『/index』以下においては、こちらが用意した404エラーすらも出ない。
mod_rewriteがそこだけスッポリ効いていないのだ。
『.htaccess』をどんなに変えようと、消そうと全く変わらないエラー。
同じようなことに困って、原因がhtaccessかと四苦八苦していた英語情報も見つけた…
原因と対応方法ついて記載しておく。
多分他のCMSでも出るエラーだしね…。
error.logを確認するとアクセスの度に、以下のようなエラーが出る。9のとこは変動。
[negotiation:error] [pid 9999:tid 999999999999999] [client 192.168.10.100:99999] AH00687: Negotiation: discovered file(s) matching request: /www/example/public/index
ただファイルがないところにアクセスしてもこのようなエラーは出ない。
apacheのoptions『MultiViews』が原因だった。
実は明後日の方向に探索かけてて解決まで3日かけた…
『config.yaml』に『- MultiViews』と設定があった…あああああ…
PuPHPetでなければ『httpd.conf』に基本的には記載がある
この『MultiViews』、似たようなファイルを探そうとするものだった。
拡張子無しで『index.php』を探しているのだ!そんなんないのに!
解決方法
『.htaccess』に『-MultiViews』を追加するだけ。
すでにOptions記載あるなら下記のように追加
Options +FollowSymLinks -Indexes -MultiViews
なければ下記を追加。場所は上部の方がいいかと。
Options -MultiViews
コメント