くりゅぴ!

サーバーやWEB問題解決のメモから生活お得情報まで。未分類のものは執筆中

wordpressのthemeのindex.phpが500エラーを出す

wordpressのthemeフォルダにはindex.phpが必須とされている。
しかし、ここには一つ問題が発生することがある。
themeファイルのindex.phpへサーチエンジンが検索してアクセスすることがある。
考えられる原因としては、themeファイルの中の素材を参照して、そのディレクトリトップへページがないかアクセスを試みる。その際に、ファイル名が指定されていない時に、index.phpが呼び出しされる。
こんなところであると思う。
その時、ただのphpファイルとして呼び出しがされてしまうので、wordpressのパーツの一部として作成されているindex.phpはエラーになってしまう。

Apacheだと、これが通常500エラーとして出てくる。
考えられる対策としてindex.phpをスラッシュでURLが終わった時に呼び出さないようにすることだ。
.htaccessをthemeフォルダに作って以下のように記述する。

DirectoryIndex index.html

こうするとindex.phpは呼び出さないようになる。

しかし、そもそもパーツであるテーマフォルダのPHPファイルを直接呼び出せること自体がよろしくない。

<Files ~ "\.php$">
  deny from all 
</Files>

この記述をthemeフォルダの中へ.htaccessを作成して記述してやることで、themeフォルダの.php拡張子には接続ができなくなる。

なお、nginxでの対策は以下をconfへ書けば良い

  location ~* ^/wp-content/.*\.php$ {
        deny all;
        access_log off;
        log_not_found off;
  }

WEB開発

タグ: , ,

WEB開発の最新記事

2020年7月13日
印刷時改ページをする
2020年7月10日
PHPのJsを外部ドメインより呼び出す
2020年7月10日
ブラウザにキャッシュさせない

コメントを残す

メールアドレスが公開されることはありません。